代码审计--48--新篇章之NodeJS代码审计(一)

本篇介绍了以下代码安全问题
1、JavaScript劫持
2、动态解析代码
3、HTTP响应截断
4、SQL注入
5、命令注入
6、资源注入
7、数据库访问控制
8、基于DOM的XSS
9、弱验证
10、反射型XSS
11、存储型XSS

1、JavaScript劫持

详细信息

使用JavaScript传送敏感数据的应用程序可能会存在JavaScript劫持的漏洞,该漏洞允许未经授权的攻击者从一个易受攻击的应用程序中读取机密数据。

JavaScript劫持可以简单的理解为模拟授权的用户,窃取用户在服务器上的信息。Web浏览器使用同源策略,以保护用户免受恶意网站的攻击。同源策略规定:如果要使用JavaScript来访问某个网页的内容的话,则JavaScript和网页必须都来源于相同的域。若不采取同源策略,恶意网站便可以使用受害者的客户端凭证来运行 JavaScript,从其他网站加载的敏感信息,并对这些信息进行处理,然后将其返回给攻击者。

使用JSON传输数据的JavaScript应用更容易受到JavaScript劫持攻击。由于JSON使用JavaScript语法的子集表示对象、数组、简单值,JSON本身可以被当做JavaScript执行,且使用eval()函数对JSON数据结构求值早被认为是存在风险的,其可能执行恶意代码。

修复建议

尽量避免跨域的数据传输,对于同域的数据传输使用xmlhttp的方式作为数据获取的方式。如果是跨域的数据传输,必须要对敏感的数据获取做权限认证,具体的方式可以包括:

(1)referer的来源限制,利用前端referer的不可伪造性来保障请求数据的应用来源于可信的地方,此种方式力度较松,完全依赖于referer,某些情况下(如存在XSS)可能导致被绕过。

(2)加入Token。利用Token对调用者的身份进行认证,这种方式对于调用者的身份会要求力度较细,但是一旦出现XSS

猜你喜欢

转载自blog.csdn.net/wutianxu123/article/details/103815509