代码改变世界

容易忽视的前端陷阱

2013-07-07 14:56  dreamhappy  阅读(391)  评论(0编辑  收藏  举报

1 CSRF

CSRF(Cross Site Request Forgery)是伪造客户端请求的一种攻击,字面上的意思是跨站点伪造请求

CSRF的定义是强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。CSRF漏洞的攻击一般分为站内和站外两种类型

现在的Web应用程序几乎都是使用Cookie来识别用户身份以及保存会话状态,但是所有的浏览器在最初加入Cookie功能时并没有考虑安全因素,从WEB页面产生的文件请求都会带上COOKIE,如下图所示,Web页面中的一个正常的图片所产生的请求也会带上COOKIE

预防CSRF:

  1. 在请求中使用 Security token
  2. 正确使用 GET、POST 和 Cookie
  3. 使用 Referer 判断请求来源

2 Jquery绑定和解除绑定

jquery中的如果使用绑定和解除绑定操作,应该是bind和unbind方法同时使用。比如使用onclick绑定的事件,再用unbind解除绑定,是没有效果的。

3  数据移除元素

由于JavaScript的数组其实就是对象,所以delete运算符可以用来从数组中移除元素。不幸的是,这样会在数组中留下一个空洞。这是因为排在被删除元素之后的元素保留着它们最初的属性。JavaScript的数组有一个splice方法,可以删除一些元素并将它们替换为其他的元素。

numbers = ['zero', 'one', 'two', 'shi', 'go'];

delete numbers[2];
// 现在numbers为['zero', 'one', undefined, 'shi', 'go']

numbers.splice(2, 1);
// 现在numbers为['zero', 'one', 'shi', 'go']

 

参考 

http://www.gracecode.com/posts/2821.html

http://www.80sec.com/csrf-securit.html

http://wenku.baidu.com/view/3a0762f90242a8956bece42e.html