打造更具安全性的ecshop
打造更具安全性的ecshop
1,修改init.php文件,@ini_set('display_errors', 1);改为@ini_set('display_errors', 0);
2,修改cls_mysql.php文件的ErrorMsg函数,注释掉那些错误提示,或者把错误写入文件。
3,给所有$_COOKIE,$_POST,$_GET,$_REQUEST变量加sql关键字过滤。
4,修改后台地址,不要使用默认的admin
5,如有可能去掉后台的模板管理-》库项目管理功能
6, 去掉后台邮件编辑的权限,去掉订单编辑的权限
7,如有可能,更改后台cookies登录的方式
修改如:cls_mysql
修改addslashes_deep函数:
该函数对数组的值和key都进行了addslashes处理,并且根据需要,还可以进行htmlspecialchars过滤。
在init.php文件
$_GET = addslashes_deep($_GET,true);
$_POST = addslashes_deep($_POST,true);
$_COOKIE = addslashes_deep($_COOKIE,true);
$_REQUEST = addslashes_deep($_REQUEST,true);
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
25 26
27 28
29 30
31 32
33 34
35 36
37 38
39 40
41 42
43 44
45 46
47 48
49 50
|
function addslashes_deep($value,$htmlspecialchars=false) {
if (empty($value)) {
return $value; }
else {
if(is_array($value)) {
foreach($value as $key => $v) {
unset($value[$key]); if($htmlspecialchars==true) {
$key=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($key,ENT_NOQUOTES))) : addslashes(htmlspecialchars($key,ENT_NOQUOTES)); }
else{ $key=get_magic_quotes_gpc()? addslashes(stripslashes($key)) : addslashes($key);
} if(is_array($v)) {
$value[$key]=addslashes_deep($v); }
else{ if($htmlspecialchars==true)
{ $value[$key]=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($v,ENT_NOQUOTES))) : addslashes(htmlspecialchars($v,ENT_NOQUOTES));
} else{
$value[$key]=get_magic_quotes_gpc()? addslashes(stripslashes($v)) : addslashes($v); }
} }
} else{
if($htmlspecialchars==true) {
$value=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($value,ENT_NOQUOTES))) : addslashes(htmlspecialchars($value,ENT_NOQUOTES)); }
else{ $value=get_magic_quotes_gpc()? addslashes(stripslashes($value)) : addslashes($value);
} } return $value;
} }
|