为什么要消毒POST和GET

时间:2013-02-12 19:12:09

标签: php mysql sql-drop

我有一个问题......我知道你必须消毒POST和GET以阻止人们对你的网站/数据库做出讨厌的事情,但我很困惑.....我看到以下内容一个网站,我想我会问这个问题。

enter image description here

黑客先生怎么会知道丢弃的桌子叫做学生?在这种情况下,它可能不会花费太多时间在学校,但我认为这种事情的代码是隐藏的当它在一个php文件中运行....所以如果我命名我的表格模糊的东西,攻击怎么会知道表名是什么掉落?。

3 个答案:

答案 0 :(得分:4)

是的,它是隐藏的,但如果你有这样的漏洞,你可以执行任何你想要的查询,包括SHOW TABLESSHOW COLUMNS ..

答案 1 :(得分:1)

经验法则是,安全总比抱歉好!如前所述,攻击者可以输出您的数据内容,或者根据图片删除它。尽管PHP代码在视图中是隐藏的,但有些情况可能并非如此,例如某些错误输出或者说PHP模块因任何原因而被卸载,源代码随后会变得可见。

答案 2 :(得分:1)

也许这不能回答这个问题,但我想做一个预先准备:每个人都只是为了“消毒”用户输入,以避免丢失表格,破坏数据库以及其他灾难。

我没有看到的是,消毒是为了保护您的查询。不是来自黑客,不是来自恶魔,而是来自名字为O'Reilly的穷人,或任何其他用户提供的包含引号的数据。

该引用可能会打破您的查询,完全停止。并停止你精彩设计的webapp。而且它不是恶意的。

因此,请清理您的查询以避免它们爆炸。在执行此操作时,您还可以防止MALICIOUS BREAK,这是本身的类别。查询是 STRINGS ,由引号分隔,内插引号只是结束不应该的字符串,并且db调用错误。