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


Clean all GET and POST inputs easily with PHP?

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

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

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

我想我可以把所有的东西从输入中去掉,除了字母、数字和标点符号。

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

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

当您知道将在什么上下文中使用输入时,应该对输入进行验证。如果输入应该是一封电子邮件,你最好先确认一下它实际上是一封电子邮件,而不是事先做出假设。关于用户输入的假设总是不好的。如果一个输入不符合你指定的限制,你应该认为它是无效的。

希望对大家有所帮助,快乐编码。