什么是web安全?
现在基于Web环境的互联网应用是比较广泛的,企业的信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,更多的是Web安全威胁,现在的黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,篡改网页内容,严重还将会是窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使访问者得到一个伤害。
下面我们一起来看看它的安全保护原理是怎样的:
SQL的一个注入原理
它就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
总结来说有下面的几点:
1.注意不要信任用户的输入,要对用户的输入进行校验,可以使用正则表达式,又或者是去限制长度,也可以是对单引号和双"-"进行转换等。
2.千万切记不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
3.注意是不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.切记不要把机密信息明文存放,请加密或者hash掉密码和敏感的相关的信息。
XSS原理及防范
Xss(也就是cross-sitescripting)攻击它指的是攻击者往Web页面里插入恶意html标签或者javascript代码。例如:攻击者在论坛中放一个
看起来是比较安全的链接,当骗取用户点击后,窃取cookie中的用户私密信息;又或者是攻击者在论坛中加一个恶意表单,
当用户提交表单,就会把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点,这个逻辑还是需要了解清楚的。
XSS它的防范方法
首先的话在代码里对用户输入的地方和变量都要去仔细的去检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把htmltag弄出来。这一步做好之后至少可以对付超过一半的XSS攻击。
首先,避免直接在cookie中泄露用户隐私,比如email、密码等。
然后是通过使cookie和系统ip绑定来降低cookie泄露后的危险。这样攻击者得到的cookie并没有什么价值,也不可能拿来重放。
当网站不需要再浏览器端对cookie进行操作,可以在Set-Cookie末尾加上HttpOnly来防止Javascript代码直接获取cookie。
在实际中是尽量采用POST而非GET提交表单
XSS与CSRF它是有什么样的区别吗?
XSS是获取信息,不需要提前知道其他用户页面的代码和数据包。CSRF是代替用户完成指定的动作,需要知道其他用户页面的代码和数据包。
要完成一次CSRF攻击,受害者必须依次完成两个步骤:
登录受信任网站A,并且是会在本地生成Cookie。
如果是在不登出A的情况下,将会是访问危险的网站B。
CSRF该怎么防御
实际上服务端的CSRF方式方法是比较多样的,但思想是不变的,就是在客户端页面增加伪随机数,也可以是通过验证码的一个方法。
总结:我们知道现在由于黑客的职业化程度越来越高,针对Web应用的攻击手段和技术日趋高明、隐蔽,致使大多Web应用处在高风险环境下开展。网站遭受攻击将直接冲破企业应用的安全底线,损害企业的一个形象,导致客户流失,因此学会掌握web安全的防御还是很有必要的。