我在项目中使用了很好的编辑器编辑器,公共用户可以使用编辑器来输入数据。在服务器端,我正在获取价值,并且在视图中也可以直接打印。
所以我担心安全问题,请你解释哪个方面应该小心?我的代码如下:
控制器:
$desc = $this->input->post('desc', TRUE);
视图:
echo $desc;
答案 0 :(得分:1)
一般情况下,使用附带的CI安全级别时您是安全的。只需确保在每个输入>帖子上使用TRUE标志,或者在配置文件中启用了XSS过滤。 $config['global_xss_filtering'] = TRUE;
取自CI的文档:
CodeIgniter附带了Cross Site Scripting Hack预防过滤器 它可以自动运行以过滤所有POST和COOKIE数据 遇到的问题,或者您可以按项目运行它。默认情况下 它不会全局运行,因为它需要一些处理 开销,因为在所有情况下你可能都不需要它。
XSS过滤器查找常用的触发技术 Javascript或其他类型的代码试图劫持cookie或做 其他恶意的东西。如果遇到任何不允许的事情,那就是 通过将数据转换为字符实体来使其安全。
为了增强跨站点请求伪造(CSRF)的安全性,您还可以启用CI的CSRF保护。这将为您的html表单(当您使用form_open()
时)提供额外的输入,并在您的应用程序中提供保护令牌。
当然,您永远不应该信任用户输入,并且您可能希望根据应用程序的使用在输入上使用另一层安全性。您可以尝试使用htmlentities(),以确保不会将恶意javascript保存到您的数据库或显示给您的访问者。