最近研读这方面的资料,也收集了些资料,打算每次做个笔记
1 设置“register_globals”为“off”
这个选项会禁止PHP为用户输入创建全局变量
2 设置“open_basedir”
这个选项可以禁止指定目录之外的文件操作,有效地消除了本地文件或者是远程文件被include()的攻击,但是仍需要注意文件上载和session文件的攻击。
3 设置“display_errors”为“off”,设置“log_errors”为“on”
这个选项禁止把错误信息显示在网页中,而是记录到日志文件中,这可以有效的抵制攻击者对目标脚本中函数的探测。
4 设置“allow_url_fopen”为“off”
这个选项可以禁止远程文件功能
5 在程序中,严格控制变量参数的类型,比如对需要用数字的地方,用如intval等函数转换
6 可以用PHP自带的htmlspecialchars函数过滤掉HTML实体或者自己写过滤函数:
function dangerchr($var){
$var = str_replace("\t","",$msg);
$var = str_replace("<","<",$msg);
$var = str_replace(">",">",$msg);
$var = str_replace("\r","",$msg);
$var = str_replace("\n","<br />",$msg);
$var = str_replace(" "," ",$msg);
}
1 设置“register_globals”为“off”
这个选项会禁止PHP为用户输入创建全局变量
2 设置“open_basedir”
这个选项可以禁止指定目录之外的文件操作,有效地消除了本地文件或者是远程文件被include()的攻击,但是仍需要注意文件上载和session文件的攻击。
3 设置“display_errors”为“off”,设置“log_errors”为“on”
这个选项禁止把错误信息显示在网页中,而是记录到日志文件中,这可以有效的抵制攻击者对目标脚本中函数的探测。
4 设置“allow_url_fopen”为“off”
这个选项可以禁止远程文件功能
5 在程序中,严格控制变量参数的类型,比如对需要用数字的地方,用如intval等函数转换
6 可以用PHP自带的htmlspecialchars函数过滤掉HTML实体或者自己写过滤函数:
function dangerchr($var){
$var = str_replace("\t","",$msg);
$var = str_replace("<","<",$msg);
$var = str_replace(">",">",$msg);
$var = str_replace("\r","",$msg);
$var = str_replace("\n","<br />",$msg);
$var = str_replace(" "," ",$msg);
}