Web Security
XSS
js代码通过script标签被注入到html页面,可以通过转义来解决
通过a标签:<a href="javascript:alert('XSS')">come on</a>
点击后href里面的js代码会被执行
更坑爹的是javascript:会被执行,jAvascript这种也会被执行,也就是说javascript:这个东西不管大小写还是前后有空格啥的,都会被执行
最终的解决办法是面对href这种值,只能允许http或者https,来杜绝javascript:这种东西被注入
json字符串中不能含有</script>,否则前面的script标签会被关闭掉
React/Vue时,不使用v-html/dangerouslySetInnerHTML,像href这种能通过javascirpt:来执行代码的标签,要特别注意字符串拼接的问题
使用http-only:通常来说document.cookie能拿到当前网站的,但是如果给cookie加上http-only,前端js就拿不到cookie了。要删除的时候,可以通过类似下面代码删除
res.clearCookie('sid', { path: '/', httpOnly: true, secure: false, });