1. xss 脚本注入
不需要你做任何的登录认证,他会通过合法的操作(比如: url 中输入,在评论框输入),向你的页面注入脚本(可能是 js、html 代码块等)。
xss 防御
编码:
对用户输入的数据进行 HTML Entity 编码(字符转义编码)。把字符
转换成转义符
,编码的作用是将一些字符进行转义,使得浏览器在最终输出的结果上是一样的。
HTML 实体是一段以连字号(&)开头、以分号(;)结尾的文本(字符串)。实体常常用于显示保留字符(这些字符会被解析为 HTML 代码)和不可见的字符(如“不换行空格”
- 不可分的空格: ;
- <(小于符号):<;
- >(大于符号):>;
- &(与符号):&;
- ″(双引号):";
- ‘(单引号):’&apos;
- ©(版权符号)©;
过滤: 移除用户输入事件和相关的属性。
2. csrf 跨域伪造
在未退出 A 网站的前提下访问 B,B 网站使用 A 网站的 cookie
去访问服务器,就是跨域伪造。
防御: token
。每次用户提交表单的时候都带上token
(伪造者访问不到),如果token
不合法,则服务器拒绝访问。