我正在使用以下功能来保护我的数据库免受注入攻击等gets.
function filter($data) {
global $db;
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = $db->real_escape_string($data);
return $data;
}
foreach($_GET as $key => $value) {
$data[$key] = filter($value);
}
Run Code Online (Sandbox Code Playgroud)
问题是,我想不仅过滤$_GET,但$_POST也.怎么做?
我可以重新分配值$_GET或$_POST过滤后?我的意思是$_GET[$key] = filter($value);代替$data[$key] = filter($value);..
不要预先转义变量,只在你需要转义它们时才转义它们.
PHP在过去做过这个.它被称为magic_quotes_gpc.
但它的实践非常糟糕,现在已经弃用了,它将从下一版本的PHP中删除.
最好在你需要的时候逃避一切.你打印一个变量?逃避它.你不必记住它是否已经被转义:它不是.
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |