资讯专栏INFORMATION COLUMN

常见的web安全问题及解决方案

geekzhou / 1830人阅读

摘要:常见的六大安全问题有点击劫持跳转漏洞注入命令注入攻击,跨站脚本攻击,因为缩写和重叠,所以只能叫。这是预防攻击窃取用户最有效的防御手段。命令注入攻击命令注入攻击指通过应用,执行非法的操作系统命令达到攻击的目的。

随着互联网的快速发展和前端的多样性,浏览器已经成一种十分重要的上网工具,也是要有越来越多的交互操作需要浏览器来支持,所以针对浏览器的安全问题也越来越重要。
浏览器安全其实是受同源策略(同域名、同端口、同协议名)保护的,但是

如何防御?

1》可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容

2》通过Referer限制!Referer信息告诉服务器是从哪个页面链接过来的

3》目前比较完善的解决方案是加入Anti-CSRF-Token,即发送请求时在HTTP 请求中以参数的形式加入一个随机产生的token,服务器读取浏览器当前域cookie中这个token值,进行比较校验。

4》验证码操作,体验上不是很好

===3.点击劫持===

通过iframe透明化,漏出来一个按钮,诱惑用户点击。

如何防御?

1》X-FRAME-OPTIONS是一个 HTTP 响应头,在现代浏览器有一个很好的支持。这个 HTTP 响应头 就是为了防御用 iframe 嵌套的点击劫持攻击。X-FRAME-OPTIONS有3个值可选:
DENY,表示页面不允许通过 iframe 的方式展示
SAMEORIGIN,表示页面可以在相同域名下通过 iframe 的方式展示
ALLOW-FROM,表示页面可以在指定来源的 iframe 中展示
2》通过js的方法判断,来隐藏iframe显示的页面。

===4.url跳转漏洞===

借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。

1》referer的限制
如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接
2》加入有效性验证Token
我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

===5.SQL注入===

SQL注入的本质:数据和代码未分离,即数据当做了代码来执行。
有可能会造成获取数据库信息管理员后台用户名和密码读取服务器敏感文件等问题,甚至修改数据库内容。

如何防御?

1》严格限制Web应用的数据库的操作权限,给此用户提供仅仅能够满足其工作的最低权限,从而最大限度的减少注入攻击对数据库的危害
2》后端代码检查输入的数据是否符合预期,严格限制变量的类型,例如使用正则表达式进行一些匹配处理。
3》对进入数据库的特殊字符(",",,<,>,&,,; 等)进行转义处理,或编码转换*。基本上所有的后端语言都有对字符串进行转义处理的方法,比如 lodash 的 lodash._escapehtmlchar 库。
4》所有的查询语句建议使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中,即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query 方法中的 ? 占位参数。

===6.OS命令注入攻击===

OS命令注入攻击指通过Web应用,执行非法的操作系统命令达到攻击的目的。

如何防御?

1》后端对前端提交内容进行规则限制(比如正则表达式)。
2》在调用系统命令前对所有传入参数进行命令行参数转义过滤。
3》不要直接拼接命令语句,借助一些工具做拼接、转义预处理,例如 Node.js 的 shell-escape npm包

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105458.html

相关文章

  • web 应用常见安全漏洞一览

    摘要:应用常见安全漏洞一览注入注入就是通过给应用接口传入一些特殊字符,达到欺骗服务器执行恶意的命令。此外,适当的权限控制不曝露必要的安全信息和日志也有助于预防注入漏洞。 web 应用常见安全漏洞一览 1. SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。 原因 当使用外...

    darkerXi 评论0 收藏0
  • web 应用常见安全漏洞一览

    摘要:应用常见安全漏洞一览注入注入就是通过给应用接口传入一些特殊字符,达到欺骗服务器执行恶意的命令。此外,适当的权限控制不曝露必要的安全信息和日志也有助于预防注入漏洞。 web 应用常见安全漏洞一览 1. SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。 原因 当使用外...

    Panda 评论0 收藏0

发表评论

0条评论

geekzhou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<