/ 其他
分类:其他来源:站内 最近更新:2020-09-25 09:09:17浏览:1190留言:0
最近公司搞IPO,针对公司网站进行了全面的安全漏洞检测。在修复的过程中,也学习了一下网站中可能会存在的漏洞。
在过滤用户输入数据时,所使用的正则表达式存在缺陷,可能导致location.hash 跨站漏洞m攻击者就可以利用此漏洞来劫持用户浏览器,进行挂马、XSS、Cookie 劫持等攻击;
把jQuery库升级到最高版,注意其他依赖的兼容性
为应用系统制定允许用户输入字符的白名单,发现输入中存在非白名单中的字符时直接返回固定的错误页面。
为了方便的获得网站域名,开发人员一般依赖于 HTTP Host header。例如,在php 里用_SERVER["HTTP_HOST"]。但是这个 header 是不可信赖的,如果应用程序没有对 host header 值进行处理,就有可能造成恶意代码的传入。
web 应用程序应该使用 SERVER_NAME 而不是 host header。
在 Apache 和 Nginx 里可以通过设置一个虚拟机来记录所有的非法 host header。在 Nginx 里还可以通过指定一个 SERVER_NAME 名单,Apache 也可以通过指定一个 SERVER_NAME 名单并开启 UseCanonicalName 选项。
会话 cookie 中缺少 Secure 属性会导致攻击者可以通过非 HTTPS 页面窃取到用户的cookie 信息,造成用户 cookie 信息的泄露。在 WEB 应用中,对于敏感业务,如:登录或者付款,需要使用 HTTPS 来保证内容的传输安全,而在用户成功获得授权之后,获得的客户端身份 cookie 如果没有设置为 Secure,那么很有可能会被非 HTTPS 页面拿到,从而造成重要的身份泄露。
向所有会话 cookie 中添加“Secure”标识。
未添加标识的 cookie:
Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H;
添加 secure 标识:
Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; secure;
会话 cookie 中缺少 HttpOnly 属性会导致攻击者可以通过程序(JS 脚本、Applet 等)获取到用户的 cookie 信息,造成用户 cookie 信息泄露,增加攻击者的跨站脚本攻击威胁。
向所有会话 cookie 中添加“HttpOnly”属性。
在前端js中,为了区分环境和调用接口,加了IP的相关判断,或者注释的地方有相关的IP重要信息。对攻击者而言,泄露内部 IP 非常有价值,因为它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,可以辅助攻击者策划出对内部网络进一步的攻击。
关闭 Web 应用程序/服务器中有问题的详细错误消息。
前端文件很敏感的注释,上线后应该去除
RPO (Relative Path Overwrite)相对路径覆盖,作为一种相对新型的攻击方式,由Gareth Heyes 在 2014 年首次提出,利用的是 nginx 服务器、配置错误的 Apache服务器和浏览器之间对 URL 解析出现的差异,并借助文件中包含的相对路径的 css或者 js 造成跨目录读取 css 或者 js,甚至可以将本身不是 css 或者 js 的页面当做 css或者 js 解析,从而触发 xss、信息泄露等进一步的攻击手段。攻击者可以使用此技术来诱骗浏览器将 HTML 页面作为 CSS 样式表导入。如果攻击者可以控制部分导入的 HTML 页面,则可以滥用此问题来注入任意 CSS 规则。
在页面中使用绝对路径或以正斜杠“/”开头的相对路径进行静态文件的加载。
robots 文件位于网站根目录下,用于标识网站的某些资源是否允许爬虫工具访问。用 Allow 表示爬虫工具可访问的资源,用 Disallow 表示爬虫工具不应该访问的资源。但同时该文件说明了目标网站存在的链接资源。通过该文件,攻击者可以更容易的清楚目标网站目录结构,为展开其他攻击提供便利。
使用部分文件名代替完整文件名或者目录名。如 使用 Disallow: /inst 代替 Disallow: /install/
上一篇:js-SDK如何设计及注意事项