【发布时间】:2011-08-15 16:41:18
【问题描述】:
我需要用我创建的 PHP 函数替换客户端网站中的一大堆 PHP 超级全局变量,以从 xss 攻击中清除超级全局变量。
原始代码如下所示:
echo $_REQUEST['HELLO1'] . ' AND ' . $_REQUEST['HELLO2'];
我需要它看起来像这样:
echo MYCLASS::myfunction($_REQUEST['HELLO1']) . ' AND ' . MYCLASS::myfunction($_REQUEST['HELLO2']);
主要问题,我需要对 100 多个文件进行搜索/替换!哎呀!
所以我的解决方案是这样的(在 linux shell 中):
sudo sed -i 's/\$_REQUEST[.*\]/MYCLASS::myfunction(&)/g' *.php
只要每行只出现一个“$_REQUEST”实例就可以很好地工作......但是对于多个实例,它会搞砸并执行以下操作:
echo MYCLASS::myfunction($_REQUEST['HELLO1'] . ' AND ' . $_REQUEST['HELLO2']);
【问题讨论】:
标签: php regex search replace sed