首先,我要提醒您,我已经阅读了this post和关于我的问题的其他几篇文章,但其中大多数几乎都已经老了,而且已经使用了大约3年。
现在我正在使用CodeIgniter 3,我想知道什么是对我的数据进行最佳过滤的过滤器,在插入数据库之前,我正在从用户那里检索它们。
这是我的网站要注册,并且我不知道正在注册哪种类型的用户,因此我不信任他们。我想在将所有输入插入到我不知道的input
类不足以对其进行净化的数据库中之前对所有输入进行净化,这很危险。请告诉我codeigniter消毒功能!
我已经在codeigniter文档中阅读了安全类,但是我想确定。
根据Docs类,input
,执行以下操作:
因此,这解决了SQL注入和XSS的问题。对于大多数用法来说,这就足够了。
要启用XSS
保护,请使用:
$val = $this->input->post('some_data', TRUE); // last param enables XSS protection.
此外,您可能希望研究CSRF
保护。但是,如果要进行ajax调用,启用它会有些棘手。
在接受任何数据到您的应用程序之前,无论它是来自表单提交的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
一切都取决于开发人员。frameworks只会提供一种构建应用程序的结构。如果编写核心php,则会更加安全。
更多链接:
How do you use bcrypt for hashing passwords in PHP?
Are PDO prepared statements sufficient to prevent SQL injection?