我正在构建一个模糊的应用程序,该应用程序仅在涉及注册过程后才可用,因此不应经常提交恶意数据。
我使用Codeigniter 2.1来过滤所有POST变量。 Codeigniter使用PHP函数mysql_real_escape_string
以及其他措施来防止通过POST数据进行SQL注入攻击。
我使用JavaScript完成所有验证客户端。 JavaScript验证运行良好。当然,用户可以使用cURL或其他一些实用程序绕过客户端验证,但Codeigniter中的库存PHP验证应该阻止SQL注入,对吗?
我可以在客户端进行验证并信任Codeigniter来保护数据库免受SQL注入攻击吗?
答案 0 :(得分:2)
这是codeigniter声称的。您可以在system / core / Security.php文件中找到它
清理数据,以防止跨站点脚本攻击。 这个功能做了相当多的工作,但它非常彻底, 旨在防止即使是最模糊的XSS尝试。没有什么是 当然,100%万无一失,但我无法得到 任何东西都通过过滤器。
答案 1 :(得分:1)
这很简单恕我直言。如果它使用mysql_real_escape_string
,则在所有情况下都不安全。有关详细信息,请参阅此答案:Best way to prevent SQL Injection in PHP。
除了你不安全之外,它还使用过时的函数与mysql交谈。
另外:您应该始终进行服务器端验证!永远不要相信客户端!