如何保护get / post参数?

时间:2015-11-05 20:42:17

标签: php security http nginx

最近我在nginx / php托管网站上看到关于get / post参数的日志中有更多错误。我有一些基本的检查(消毒),但我认为我做得不够。

我的一些检查显示了对“id”参数的尝试:

Parameter ID was not a number! Parameter was: function id() {
var s = '';
while (s.length < 32) {
    s  = Math.random().toString(36).replace(/[^A-Za-z]/g, '');
}
return s;
}" while reading response header from upstream, client: ...

所以基本上我期待一个数字,并得到一个非常有趣的字符串。我甚至不知道他们试图通过该代码实现什么,它似乎是javascript,我的服务器是php。

我正在考虑用正则表达式来检查字符串参数。

您建议在php网站上获取/发布参数进行哪种检查?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您尝试检索的数据类型。在您使用(整数)数字的情况下,我认为您正在做的事情很好:如果他们没有输入整数值,那么只需返回您正在做的错误。

对于文本,我认为清除(删除非法字符),例如使用htmlentities()应该足以防止黑客攻击。

但同样,它实际上取决于您使用的安全级别和数据类型。