Mik*_*ley 5 php forms input sanitize strip-tags
我目前正在从令人讨厌的XSS攻击中恢复,并意识到我从未对我网站上的几个表单上的输入进行清理.我使用Notepad ++的Find In Files功能$_POST在我的所有PHP文件中搜索,并获得了近5,000个结果.现在,我真的不想手动添加strip_tags到这些结果中的每一个,但是替换 - 所有这些都不会成功...而且当涉及到正则表达式之类的东西时,我就是一个完全的菜鸟.
有没有办法让这个变得不那么乏味?
mat*_*pie 18
只是用array_map().
$Clean = array_map('strip_tags', $_POST);
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望它返回$_POST变量:
$_POST = array_map('strip_tags', $_POST);
Run Code Online (Sandbox Code Playgroud)
虽然使用不同的变量并更改文件中所有出现的内容$_POST,但这可能是个更好的主意$Clean.
嗯,我认为array_walk_recursive会做的伎俩:
function custom_strip(&$val, $index) {
$val = strip_tags($val);
}
array_walk_recursive($_POST, 'custom_strip');
Run Code Online (Sandbox Code Playgroud)
你可以把它放在一个文件中(例如 safe.php)
foreach ($_POST as $key => $value) {
$_POST[$key] = is_array($key) ? $_POST[$key]: strip_tags($_POST[$key]);
}
Run Code Online (Sandbox Code Playgroud)
然后放入require_once("safe.php");您的每个 php 文件(或所有 php 文件已包含的文件)
这是一个丑陋的黑客..但它可能会节省您的时间。
| 归档时间: |
|
| 查看次数: |
9116 次 |
| 最近记录: |