Jac*_*ack 4 php security post codeigniter
这更像是一个理论问题,而不是具体问题.
我有一个使用CodeIgniter的Form Validation类设置的表单.我有一些规则在运行,例如:
$this->form_validation->set_rules('address_line_1', 'Address Line 1', 'required|xss_clean|trim');
我最终想把address_line_1数据放到我的数据库中.这是我有点困惑的地方.似乎有几种$_POST从CodeIgniter 中获取数据的方法:
$address = $_POST['address_line_1'];
$address = $this->input->post('address_line_1');
$address = $this->form_validation->set_value('address_line_1');
$address = set_value('address_line_1);
那么"正确"的方式是哪种方式?
虽然我确信其中有几个假设是错误的,但我一直认为......
$_POST CodeIgniter的安全性未经过清理(我对此有信心)
$this->input->post() 将对数据进行清理(在一定程度上),但不会应用任何表单验证准备规则
$this->form_validation->set_value()是一样的set_value(),但......
... set_value()旨在通过value=""元素重新填充表单输入.
我的哪些假设是正确的,哪些是错的?$_POST当我使用表单验证准备数据时,我应该通过什么方式提取数据?就此而言,表单验证文档含糊不清.例如,没有一个例子表明它实际上将输入数据传递到模型上.
谢谢!
插口
Phi*_*eon 13
它们都是不同的,或者它们不会全部存在.
$_POST['foo']没有保护和原始输出.坏.别碰.等等 $this->input->post('foo')转义和XSSified输入.默认为FALSE而不是错误.$this->form_validation->set_value()这将采用经过验证的输出,该输出可能已通过验证规则进行了修改.例如,如果添加"trim"作为验证规则,则将修剪已验证的内容.set_value()只是上述方法的别名.人们不喜欢在他们的观点中使用$ this.这些都在文档中.
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |