使用PHP轻松清除所有GET和POST输入?

时间:2015-08-08 10:44:51

标签: php mysql security

我已经构建了一个相当大的Web应用程序,现在几乎已经完成,我没有做任何事情来使用户输入安全。

每个页面首先调用'midleware'对象,我想我可以清除其构造函数中的所有$_GET$_POST变量。

是否可以只使用PHP函数来确保所有输入的安全,或者我应该通过每个输入进行清理并专门针对它的用途进行清理?该应用程序使用MySQL数据库,大多数输入与MySQL数据库一起使用。

我想我除了字母数字和标点符号外,我可以从输入中删除所有内容。

1 个答案:

答案 0 :(得分:4)

在确切知道输入的使用位置之前,不可能“逃避”或使所有输入“安全”。

防止SQL注入应主要通过准备好的语句来完成。 PDOmysqli扩展都支持预处理语句,并且通常与标准PHP发行版捆绑在一起。但是,您可以使用iconvmbstring_*扩展程序强制所有输入到指定的字符编码。

当您知道将在何种上下文中使用时,应该完成验证输入。如果输入应该是电子邮件,那么您最好先确认一次电子邮件,而不是事先做出假设。关于用户输入的假设总是很糟糕。如果输入不符合您指定的限制,您应该认为它无效/受污染。

希望这可以帮助,快乐编码。