首先,我应该提醒您,我已经阅读了this post以及其他一些关于我的问题的帖子,但最重要的是它们已经差不多了,大约3年前。
现在我正在使用CodeIgniter 3,我想知道什么是我的数据的最佳清理过滤器,我会在插入数据库之前从用户检索它们。
这是我的网站注册,而且我不知道注册的是哪种用户,我不能信任他们。在将数据插入数据库之前我想清理所有输入可能会很危险我不知道input
课程是否足以消毒它?
请告诉我codeigniter消毒功能!
我已经在codeigniter文档中读过安全类,但我想确定。
答案 0 :(得分:7)
根据Docs,input
类,执行以下操作:
因此,这解决了SQL注入和XSS的问题。对于大多数用法来说,这已经足够了。
要启用XSS
保护,请使用:
$val = $this->input->post('some_data', TRUE); // last param enables XSS protection.
此外,您可能希望了解CSRF
保护。但是,如果您正在进行ajax调用,那么启用它会有点棘手。
偏见:尝试在真正的框架中启动新项目,例如Zend,Laravel等,默认情况下,您可以更好地控制过滤和安全性。
答案 1 :(得分:1)
在接受任何数据到您的应用程序之前,是否是来自表单提交的POST数据,URI 数据,您必须遵循以下步骤:
XSS过滤
此过滤器查找嵌入恶意软件的常用技术 JavaScript进入您的数据
要通过XSS过滤器过滤数据,请使用xss_clean()
方法:Read More
验证数据
CodeIgniter有一个表单验证库,可帮助您验证,过滤和准备数据
$this->form_validation->set_rules('username', 'Username','trim|required|min_length[5]|max_length[12]');
修剪字段,在必要时检查长度并确保两个密码字段匹配。 Read more
在插入数据库之前撤消所有数据
永远不要在不转义信息的情况下将信息插入数据库。
请参阅查询构建器类以获取更多信息https://www.codeigniter.com/userguide3/database/query_builder.html
更多信息
Codeigniter不会使您的应用程序出现问题请参阅此https://security.stackexchange.com/questions/97845/how-secure-is-codeigniter-3-x
一切都取决于developer.frameworks只提供构建应用程序的结构。如果你编写核心php,你会更安全。
更多链接:
How do you use bcrypt for hashing passwords in PHP?
Are PDO prepared statements sufficient to prevent SQL injection?