网络攻击对于用户和企业来说都是需要长期 1)XSS
通过给定异常的输入,黑客可以在你的浏览器中,插入一段恶意的JavaScript脚本,从而窃取你的隐私信息或者仿冒你进行操作。这就是XSS攻击(Cross-SiteScripting,跨站脚本攻击)的原理。
2)SQL注入
黑客会通过构造一些恶意的输入参数,在应用拼接SQL语句的时候,去篡改正常的SQL语意,从而执行黑客所控制的SQL查询功能。这个过程,就相当于黑客“注入”了一段SQL代码到应用中。这就是我们常说的SQL注入。
3)CSRF/SSRF
黑客编写带有恶意JavaScript脚本的网页,通过“钓鱼”的方式诱导你访问。然后,黑客会通过这些JavaScript脚本窃取你保存在网页中的身份信息,通过仿冒你,让你的浏览器发起伪造的请求,终执行黑客定义的操作。而这一切对于你自己而言都是无感知的。这就是CSRF(Cross-SiteRequestForgery,跨站请求伪造)攻击。
用户在浏览器中输入一个URL(比如某个图片资源),然后服务端会向这个URL发起请求,通过访问其他的服务端资源来完成正常的页面展示。这个时候,只要黑客在输入中提交一个内网URL,就能让服务端发起一个黑客定义的内网请求,从而获取到内网数据。这就是SSRF(ServerSideRequestForgery,服务端请求伪造)的原理。
4)反序列化漏洞
应用在输出某个数据的时候,将对象转化成字符串或者字节流,这就是序列化操作。反序列化操作也就是应用将字符串或者字节流变成对象。
在数据转换成对象的过程中,应用需要根据数据的内容,去调用特定的方法。而黑客正是利用这个逻辑,在数据中嵌入自定义的代码(比如执行某个系统命令)。应用对数据进行反序列化的时候,会执行这段代码,从而使得黑客能够控制整个应用及服务器。这就是反序列化漏洞攻击的过程。
5)信息泄露
避免错误信息泄露代码逻辑,一方面是要通过正确地配置文件,避免错误信息被展示到前端;另一方面是要对错误信息进行检测,这里就需要用到“黑盒”检测了。
所谓“黑盒(BlackBoxTesting,功能测试)”,就是在不获取代码的情况下,直接运行应用,然后对应用的请求和响应进行扫描。比如,在错误信息泄露的场景中,“黑盒”检测可以向应用发起一些必然会导致错误的请求(比如上述例子中的单引号),然后观察应用是返回完整的错误日志,还是返回某些经过处理的页面。
除了错误信息之外,间接的信息泄露方式还有两种:返回信息泄露和注释信息泄露。