美文网首页
网络安全之客户端脚本安全

网络安全之客户端脚本安全

作者: Henry__g | 来源:发表于2018-12-02 17:28 被阅读0次

    前段时间读了《白帽子讲Web安全》,很不错的一本安全书籍,适合我这种安全小白。这篇文章是对客户端脚本部分的总结。

    安全本质

    安全的本质是信任。安全方案设计的基础是建立在信任之上,我们必须信任某些东西,必须有一些基本的假设。从另外一个方面讲,如果我们作为决策依据的条件被打破,被绕过,那么就会导致安全假设的前提不再可靠。

    浏览器安全

    同源策略

    相同协议,域名,子域名,端口都相同才会被认为是同源。限制了来自不同源的脚本或者document对当前document的修改。

    同源策略是浏览器安全的基础。可以想象如果没了同源策略,那么我通过脚本直接修改任何一个网站的东西,这不是乱套了吗?

    注意有一些标签不收同源策略的影响,比如link,script,img,这些标签的src属性相当于发起了一次get请求。

    XSS攻击

    说白了就是把一段javascript脚本注入到输出的html中,使得渲染html的时候,解析了javascript脚本并且运行攻击代码。

    XSS攻击是非常常见的一种攻击方式,我自己就在我们官网找到了一处反射XSS漏洞(直接把用户输入的搜索字符串打印到了搜索历史中,所以我如果输入搜索<script>alert(1)</script>的就会弹出1)。

    XSS攻击可以干啥,还是用上面我们官网的例子。如果我不是执行alert(1),而是发送一个删除帖子的API请求,那么只要点了这个链接那么这个用户发表过的文章就都被删除了,甚至我可以给他的好友群发站内信把我构造的链接加上,那么每一个打开这个链接用户都会中招,然后又会给他们的好友再群发站内信,这就构造了一个XSS蠕虫!所以千万不要低估XSS的危害。

    如何防止XSS攻击

    http-only

    严格来说http-only是防止被XSS攻击之后的cookie劫持的问题。加了http-only之后的cookie不能被javascript访问到。给关键业务和敏感信息的cookie添加http-only是业界通用的处理方式

    输入/输出检查

    输入检查在不同的语境下面有不同的方式。比如登录框只限制手机号码,搜索框只允许出现英文中文字母,社区评论的富文本要稍微复杂一些。

    变量输出到HTLM的时候要使用HtmlEncode编码转一遍,我上面讲的那个XSS问题就可以通过这个解决。

    相关文章

      网友评论

          本文标题:网络安全之客户端脚本安全

          本文链接:https://www.haomeiwen.com/subject/kqvjcqtx.html