php正则函数抓取网页连接(防止XSS的时机判断,让你明白XSS实质应该防止的位置)
优采云 发布时间: 2022-01-23 09:07php正则函数抓取网页连接(防止XSS的时机判断,让你明白XSS实质应该防止的位置)
这里主要介绍防范XSS的时机,让大家了解应该防范XSS的位置。
什么是 XSS 攻击
是指恶意攻击者在网页中插入恶意html代码,当用户浏览网页时,嵌入网页中的html代码会被执行,从而达到恶意攻击用户的特殊目的。
XSS是黑客和恶意用户常用的注入漏洞,也是网站的安全隐患
以 Think PHP3.2 框架为例
该框架旨在防止 XSS(跨站脚本,跨站脚本)危害。用户通过脚本脚本控制网页的行为。采用的策略:接收到浏览器端数据后,将数据转换成HTML实体编码
这是框架的默认策略,很低,现在几乎不用
当接收到数据时,实体编码转换完成。主要问题是“存储在数据库中的不是原创数据,而是经过处理的数据”。
html实体编码数据
目前的策略是:
当数据输出到页面时,进行html实体编码转换。
两者都使用 HTML 实体编码转换,但是时机不同。合理的策略是输出。不输入。
原因:Script 脚本,只有在浏览器端运行时,才有执行意义。存储在数据库中,没有任何危害!
数据库不知道用户实际输入了什么!
计划:
off, on input, 自动实体编码处理
关闭默认过滤器
默认过滤方法为空
输出时,过滤可能注入的字段:
在模板中完成:
对必填字段添加过滤文章
影响:
在数据中,存储的是原创数据,不对数据进行转换和编码
原创数据被保存
在输出时,数据是实体编码的:
详细解释太长了,再简单说一下Html编辑器中XSS的处理应该是另一种方式
原因:
其他字段,标题字段,输出时可以直接转换为实体标签。
但是,用于描述这个 html 编辑器的内容。输出时不能直接转换。因为是html代码,所以对数据有意义。
处理方案:将内容的脚本部分转化为实体。非脚本部分不被处理。
完成:
自定义过滤功能
使用正则替换实现,只处理脚本标签
定义为方法,需要选择的时候使用这个函数
结果
数据库中的数据:
输出时:
本文主要介绍XSS预防的时机。如需更多相关信息,请联系