专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

CodeIgniter配置之XSS和CSRF

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:06:48       共计:3625 浏览
先看一下上面的错误提示,你能很快找到问题所在吗? 该问题就是因为csrf引起的!当csrf_protection为true时,会对每个POST提交页面进行csrf保护校验,验证不通过就会报上面的错误了。 csrf就好比在每个提交页面设置了一个隐藏的验证码,验证码的名字叫csrf_test_name,值为cookie名csrf_cookie_name的值。当提交时,会把cookie中的值和表单中提交的值进行比较,如果表单没有设置该值或者由于cookie过期,则提示上面错误。 所以可以看到全局打开csrf_protection后会导致每个POST提交页面都需要验证并且校验依赖cookie。 创建普通表单时可通过CI提供的form_open函数来创建,但ajax提交呢?就需要手动传入csrf_cookie_name到服务端了。以及cookie会在一定时间后过期,虽然时间默认设置了7200s,但还是存在过期的可能性。难道你愿意因为某些原因让用户看到上面提示? 所以, 不建议开启csrf_protection,可以在需要设置的地方使用验证码或自己设置。 接下来,说一下xss 当global_xss_filtering设置为true,会对GPC进行过滤,如会将 PHP复制代码  
<script>1</script>
  复制代码
过滤成
PHP复制代码  
[removed]1[removed]
  复制代码
也就是对用户输入的原始数据进行了修改,这是很严重的。也许用户想要的就是过滤前的数据呢? 比如,用户设置密码为a,而经过过滤处理后变成了b,这将会导致用户的密码在数据库中实际为b,用户每次通过系统登录时,都会先做一次转换工作再登录,或者输入密码b也能登录成功。 那如果其他系统也要做登录功能,用户是共享的,那该用户通过密码a登录就失败了。或者也可能系统升级更换框架, 那这批用户也就登录不成功了。这就是潜在的问题,表面上看起来没问题,但可能为以后造成重大影响。所以 只对需要过滤的参数进行过滤,慎重考虑全局参数控制
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:CodeIgniter配置之SESSION | ·下一条:CodeIgniter配置之URL

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有