晚上没有加班,回来后尝试几个感觉不错的行动:1.列出当天最有意义的五件事;2.靠墙站,纠正自己的姿势同时锻炼眼睛;这两点以后也要坚持成为每天的习惯。然后我又陷入了知乎的各种信息中,一个多小时的时间悄悄地流逝,我浏览过的内容中印象深的是性格改变,自我提升,自我管理,web安全相关的内容。下面摘录我觉得很不错的Web安全相关的内容:

CSRF 攻击

CSRF的全称是Cross Site Request Forgery,就是跨站点伪造请求攻击。 简单理解:Bad guy盗用你的身份,做桌下交易。

详细原理看Cross Site Request Forgery

经典案例:

看看乌云网友如何通过CSRF漏洞,自动加关注和发微博。 我是如何刷新浪微博粉丝的

防御措施:

最有效的措施,对敏感操作增加CSRF Token验证并尽量采用POST请求方式(虽然GET 也可以增加Token验证)。

1、用户第一次请求网站是生成CSRF Token并保存到session中。 2、POST请求时,增加Input Field csrf_token, 参数值通过session获得。 3、服务器端验证Token的合法性,并更新token。

XSS攻击

XSS攻击可以说最常见最严重的漏洞攻击了。

XSS的全称是Cross-site Scripting,就是跨站脚本攻击。主要分为非存储型XSS(反射型)和存储型XSS. 详细介绍看WIKI吧: Cross-site scripting

防御措施:

1、输入过滤, 即使用Filter 过滤一些敏感字符"<" ">" "#" "script"等. 2、输出过滤(output encoding),htmlEncode, javascriptEncode 3、对敏感操作增加验证码

过滤工具推荐(JAVA):

https://code.google.com/p/owaspantisamy  (比较全面,但有点重)
https://code.google.com/p/xssprotect/

SQL注入攻击

SQL注入这种老掉牙的攻击手段,我就不多介绍了。

最简单的防御措施,使用预编译方式绑定变量:

JDBC 使用PreparedStatement.

mybatis/ibatis 使用静态变量#

正确地使用Cookie

1、对于无需JS访问的cookie设置HTTPOnly 2、不要在cookie存放用户敏感数据。

合理设计一个cookie自动登录方案

要保存哪些数据:

1、cookie保存base64 encode(username|sequence|token)的value。

2、服务器使用Redis的Hashs结构保存以下这几个值。

Key: user::cookie hashKey: userAgent_ip,userAgent_sequence,userAgent_token,userAgent_expireTime   

如何验证COOKIE登录:

1、如果expireTime没到而且username,sequence,token均相同,登录成功。

2、如果expireTime没到,username和sequence相同,token不同,但IP相同和userAgent不同,登录成功。为什么要这样的设计?因为同一用户可能会使用的不同设备/浏览器登录。

3、其余情况均登录失败,并清空登录cookie。

4、成功登录后,服务器update token,同时更新cookie。

后续操作:

1、修改密码/点击退出,更新服务器端的token和sequence。

2、对于敏感操作(如修改个人私隐信息,Email,password等)需要输入密码。

数据安全

相信大家还记得CSDN 明文密码被暴库泄露的事件吧。 最近又有被暴库的,300w用户数据。住哪网300W+用户明文密码泄露

防御措施:

对密码采用MD5/SHA(salt+password)进行HASH,salt是一串字符,为防止Rainbow Table 破解用的, salt应该放在一个隐秘的地方(某处代码或配置文件中)。

DDOS攻击

一般来说,防御DDos的攻击是比较难,常见的DDOS方式较多(网络层DDOS、应用层DDOS等)。

一些非物理措施:

1、增加anti-spam 机制

2、限制IP请求频率, 结合ip+cookie定位一个client

3、调小Timeout, KeepAliveTimeOut, 增加MaxClients

4、增加容灾机器,优化网站性能。

5、合理配置防火墙。

摘自:http://www.qixing318.com/article/programmers-need-to-master-the-knowledge-of-web-security.html

  • 一切的安全问题都体现在“输入输出”上,一切的安全问题都存在于“数据流”的整个过程中。
黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。
精彩举例:

1. 如果在操作系统层上没处理好,比如Linux的Bash环境把“特殊数据”当做指令执行时,就产生了OS命令执行的安全问题,这段“特殊数据”可能长得如下这般:
; rm -rf /;

2. 如果在存储层的数据库中没处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行时,就产生SQL注入这样的安全问题,这段“特殊数据”可能长得如下这般:
' union select user, pwd, 1, 2, 3, 4 from users--

3. 如果在Web容器层如nginx中没处理好,nginx把“特殊数据”当做指令执行时,可能会产生远程溢出、DoS等各种安全问题,这段“特殊数据”可能长得如下这般:
%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%20

4. 如果在Web开发框架或Web应用层中没处理好,把“特殊数据”当做指令执行时,可能会产生远程命令执行的安全问题,这段“特殊数据”可能长得如下这般:
eval($_REQUEST['x']);

5. 如果在Web前端层中没处理好,浏览器的JS引擎把“特殊数据”当做指令执行时,可能会产生XSS跨站脚本的安全问题,这段“特殊数据”可能长得如下这般:
'"><script>alert(/cos is my hero./)</script>

...

  • 摘自:http://www.zhihu.com/question/21606800

2014第7周1Web安全概念学习的更多相关文章

  1. Flex中配置FusionCharts

    Flex中配置FusionCharts 1.配置前说明 (需要的工具和插件) 1.1   MyEclipse10.0 1.2   Flash Builder4.0 1.3   FusionCharts ...

  2. 2014秋C++ 第8周项目 分支程序设计

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703.课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  3. 2014年6月份第3周51Aspx源码发布详情

      基于知识树的多课程网络教学平台源码  2014-6-16 [VS2008]功能介绍:本平台是一个支持网上教学的网站,支持多个课程,教师可根据需要创建课程,进行课程结构.题库等的管理.   技术特色 ...

  4. 2014年6月份第2周51Aspx源码发布详情

    AMX高效自定义分页控件(WinForm)源码  2014-6-9 [VS2008]2014.6.9更新内容:   1. 更改用户自定义分页控件功能布局.大大精简了调用分页自定义控件的代码,和使用系统 ...

  5. 2014年6月份第1周51Aspx源码发布详情

    企业汽车服务终端管理系统源码  2014-6-3 [VS2010]源码描述:本系统专门服务于(汽车美容4s店) 完整的一套汽车美容管理服务系统. 功能介绍:汽车美容服务终端功能强大而又简便实用,界面友 ...

  6. 2014年5月份第4周51Aspx源码发布详情

    最基本wcf服务器与客户端交互源码  2014-5-26 [VS2003]源码描述:本示例讲解的是最基本的wcf语法,示例浏览请先运行服务端,然后在运行客户端,适合想要学习wcf的初学者.仅供借鉴,欢 ...

  7. 第16/24周 SQL Server 2014中的基数计算

    大家好,欢迎回到性能调优培训.上个星期我们讨论在SQL Server里基数计算过程里的一些问题.今天我们继续详细谈下,SQL Server 2014里引入的新基数计算. 新基数计算 SQL Serve ...

  8. 2014年5月份第3周51Aspx源码发布详情

    HGM简单连连看游戏源码  2014-5-19 [VS2010]源码描述:这是一款基于WinForm窗体程序的简单水果连连看的小游戏.界面比较美观, 功能如下:该游戏可以显示当前关卡,还有剩余时间.重 ...

  9. 2014年4月份第3周51Aspx源码发布详情

    WPY净水机网站源码  2014-4-14 [VS2008]源码描述: 实现产品展示,在线留言,信息发布,在线咨询,营销网络地图. 网站基本管理:网站banner管理 管理首页滚动图片信息 网站右下部 ...

随机推荐

  1. log4j 将日志记录到数据库

    需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bi ...

  2. JavaScript 之 Cookie

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...

  3. SQL数据转移

    方法一:如果想把数据库A中的表Table1中的数据复制到数据库B中的表Table2中,也就是要预先建立Table2,可以使用一下语句: use B goinsert into Table2 selec ...

  4. C语言的本质(32)——C语言与汇编之C语言内联汇编

    用C写程序比直接用汇编写程序更简洁,可读性更好,但效率可能不如汇编程序,因为C程序毕竟要经由编译器生成汇编代码,尽管现代编译器的优化已经做得很好了,但还是不如手写的汇编代码.另外,有些平台相关的指令必 ...

  5. 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo

    最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘. 3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.O ...

  6. Asp.Net的核心对象

    原文地址:http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html 1.HttpRuntime 对象在处理Http请求的asp.ne ...

  7. poj 3370 Halloween treats(鸽巢原理)

    Description Every year there is the same problem at Halloween: Each neighbour is only willing to giv ...

  8. 谱聚类--SpectralClustering

    谱聚类通常会先对两两样本间求相似度. 然后依据相似度矩阵求出拉普拉斯矩阵,然后将每一个样本映射到拉普拉斯矩阵特诊向量中,最后使用k-means聚类. scikit-learn开源包中已经有现成的接口能 ...

  9. 怎样查询SCI和EI检索号

    为了年终考核,花了一个早上才搞清楚,里面有非常多小问题.以下具体说明具体过程: SCI检索号 1.进入图书馆主页: 2.选择"电子数据库": 3.选择外文数据库中的"We ...

  10. minicom与USB转串口

    实验器材:mini6410 连接方式:ARM板通过USB转串口线连接到pc机 下面是具体的设置了. 默认情况下,UBUNTU安装了USB转串口驱动(pl2303). 1.# lsmod | grep ...