正如标题所说,我确实像这样补充我的输入:
<input type="text" name="my_input" value="<?= $this->input->post('my_input') ?>"/>
但这安全吗?按照 CodeIgniter 用户指南,我可以将 的第二个参数设置为$this->input->post()
,TRUE
然后输入将通过该xss_clean
函数进行过滤,但这真的有必要吗?或者也许我应该htmlentities()
在这样做的时候使用函数?
正如标题所说,我确实像这样补充我的输入:
<input type="text" name="my_input" value="<?= $this->input->post('my_input') ?>"/>
但这安全吗?按照 CodeIgniter 用户指南,我可以将 的第二个参数设置为$this->input->post()
,TRUE
然后输入将通过该xss_clean
函数进行过滤,但这真的有必要吗?或者也许我应该htmlentities()
在这样做的时候使用函数?
CodeIgniter 有一个 prep_for_form() 函数,特别是为此。我没有看过代码,但如果我是你,我会去那里看。
每次您将希望被视为文本的字符串输出到 HTML 标记中时,都必须使用 HTML 转义函数。出于实际原因,我会推荐htmlspecialchars()
过去htmlentities()
,但它们在质量上并没有什么不同。对于您引用的示例代码,这绝对是正确的做法。
CIxss_clean
是一种用于输入处理的清理功能。就我个人而言,我认为这是一个笨拙的、被误解的不一致的包,它会不必要地破坏你的输入并导致奇怪的错误。但无论哪种方式,它都是一种深度防御措施,并不能免除您对 HTML 转义的责任。
我建议改为消毒过滤器。