XSS 攻击和 SQL 注入攻击
XSS 攻击
借助 js 实现的攻击,在服务端没有对<>进行转译显示的时候发生。导致用户在浏览页面时会运行 xss 攻击插入的 js 代码。可以获取 cookie 信息。 解决方案:在页面内容输出的时候做转译,将<>转译成 & lt;和& gt; nodejs 中通过 escape 库简单搞定。 就是在返回页面内容的时候,先用 escape 库处理一下,而不是直接返回内容。
SQL 注入攻击
利用服务器拼接 sql 字符串,拼接出各种 sql,在服务端执行。使服务端数据泄露,甚至被任意篡改。 解决方案:采用 sql 预编译。 sql 预编译就是事先生成模板,然后填入参数,严格按参数类型进行填入。
CSRF
跨站恳求伪造,在用户并不知情的状况下,冒充用户发送恳求,在当前曾经登录的 web 网站上执行歹意操作,比方歹意发帖,修正密码等。 大致来看,与 XSS 有重合的中央,前者是黑客盗用用户阅读器中的登录信息,冒充用户去执行操作。后者是在正常用户恳求的 HTML 中放入歹意代码, XSS 问题出在用户数据没有转义,过滤;CSRF 问题呈现在 HTTP 接口没有防备不守信誉的调用。 防备 CSRF 的破绽方式: 1、CSRF Token 考证,应用阅读器的同源限制,在 HTTP 接口执行前考证 Cookie 中的 Token,考证经过才会继续执行恳求。 2、人机交互,例如短信考证码、界面的滑块。 之前在会议上也有一个考虑,在人机考证这块,假如不用考证码的方式,用界面上的滑块这种方式,而且滑块还是第三方的。在 APP 的注册、登录运用这种人机考证的方式的话,假如第三方呈现了问题,那么本人的 APP 就完整崩掉了,发版之后的 APP 什么也改不了。