游戏陪玩app开发,关注XSS攻击做好防御措施
XSS攻击 常见攻击手段
1、在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。
2、在内联的 JavaScript 中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。
3、在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。
4、在标签的 href、src 等属性中,包含 javascript: (伪协议)等可执行代码。
5、在 onload、onerror、onclick 等事件中,注入不受控制代码。
6、在 style 属性和标签中,包含类似 background-image:url(“javascript:…”); 的代码(新版本浏览器已经可以防范)。
7、在 style 属性和标签中,包含类似 expression(…) 的 CSS 表达式代码(新版本浏览器已经可以防范)。
1、现代浏览器是支持防御部分XSS 攻击功能的,只需要在http设置X-XSS-Protection响应标头,告诉浏览器开始XSS防护,即可防御部分XSS攻击,值1指示浏览器启用其XSS过滤器,而值0则禁用它。另一个值mode=block告诉浏览器如果检测到XSS攻击,则阻止整个页面。
2、在Cookie和HTTP头中设置HTTP-Only和secure属性,以避免被XSS攻击者获取。
3、合理使用CSP(Content Security Policy)来限制第三方内容的注入,它分别可以使用HTTP请求、HTML mate表情的形式来开启,如下;
http响应头设置白名单
Content-Security-Policy: default-src 'self'; script-src 'self' waylon.com
HTML mate设置白名单
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' waylon.com">
4、输入验证:比如一些常见的数字、URL、电话号码、邮箱地址等等做校验判断;
5、对于从数据库获取的一些敏感数据,需要进行适当的编码和过滤,以避免被攻击者利用,防存储型。
6、对于HTML注入进行过滤(Vue/React 技术栈,避免使用 v-html / dangerouslySetInnerHTML),例如(伪代码):
let regex = /^url\("".*""\)$/; if(node.style && node.style['backgroundImage'] && regex.test(node.style['backgroundImage'])){ node.style['backgroundImage'] = ''; // 防范background-image: url('javascript:alert("XSS")'); }
以上就是游戏陪玩app开发,关注XSS攻击做好防御措施, 更多内容欢迎关注之后的文章