如何防止POST方法被黑客攻击

3
我有一个脚本,使用$_POST变量将数据存储到数据库中。
一些用户试图欺骗系统,通过创建自己的post表单方法或使用curl发送post变量和值到服务器。
我该如何防止这种攻击?
谢谢。
4个回答

5

预防措施并不可行(POST是安全的过度简化的神话)。您需要使用各种方法验证传入数据:

  • CSRF令牌可以防止任意表单提交机器人(但无法防止手工篡改)
  • 枚举预期的表单值,assert() 确保所有值都存在且没有多余的字段出现
  • 对预期的值进行清理和过滤。例如,我使用$_POST->text->in_array("field", "abc,def,xyz")

+1。另外,关于表单处理的资源:http://phpsec.org/projects/guide/2.html - Radek Benkel
@singles:这是一个非常好的链接,回答也更有权威性。 - mario

1

无法阻止人们进行任意的HTTP请求。

如何保护自己取决于请求的内容以及它为何构成攻击。


1
您可以通过验证码等形式的保护确保POST是从您的表单中进行的,或者您可以对每个 $_POST 变量进行清理,并在不满足条件时拒绝整个POST数据。

-1

这种攻击被称为“SQL注入”。防范它并不太难。如果您的值是字符串,请使用magic_quotes;如果您的值是数字,请使用跳过仅数字的过滤器。


1
魔术引号不足以防止SQL注入攻击。这个问题没有提供足够的信息来得出攻击是SQL注入,它可能是XSS,“篡改我的分数”,“在我的论坛上填充垃圾邮件”或其他什么东西。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接