Web应用安全十大主动安全措施
这几天有空参加了360主办的第一届互联网安全大会(ISC 2013),除了现场看到FREEBUF现场微博号发的众多妹子之外,也听到了很多有趣的议题,比如TK分享的通过网络运营商缓存服务器偷渡,只需一台电脑,一根网线,就能对任何网站实施挂马攻击,感受颇多,明天继续参加WEB应用安全论坛,在参加之前,也浅谈分享下自己在WEB应用安全方面的一些心得,众大牛轻喷。
1:Content-Security-Policy
Content Security Policy是Mozilla为了提高浏览器安全性开发的一套新的安全机制,该机制让网站可以定义内容安全政策,明确告知浏览器哪些内容是合法的,让浏览器得以避开恶意内容。CSP主要锁定解决XSS及跨站冒名请求(Cross Site Request Forgery)等网络应用程序漏洞。强烈建议用户将该告警打开,你可以看到哪些数据在干坏事。
在Web上,此策略是通过HTTP头或meta元素定义的。在Chrome扩展系统中,不存在这两种方式。扩展是通过manifest.json文件定义的:
{
…,
“content_security_policy”: “[POLICY STRING GOES HERE]“
…
}
关于CSP语法的详细信息,请参考W3C的 Content Security Policy规范。
2:设置X-Frame
所有的现代浏览器都支持X-Frame-Options HTTP头,这个头允许页面被iframe使用时是否正常渲染。通过使用X-FRAME-OPTIONS伪指令,Web开发人员可以立即帮助IE8用户减轻来自各种Web 应用程序攻击的威胁。
使用X-Frame-Options 有两种可能的值:
DENY :该页无法显示在一个框架中.
SAMEORIGHT :页面只能显示在页面本网站的框架中.
换句话说,通过<IFRAME>/<FRAME> 框架加载页面,如果你指定DENY,不仅会尝试加载在一个 框架页面失败,其它网站加载也会失败。 另一方面,如果你指定 SAMEOptions ORIGHT, 其它网站加载会失败。
3:防止CSRF跨站攻击
建议在每个表单验证的地方加上随机的token,这样能够防止用户被CSRF攻击。关于CSRF跨站请求攻击防护,FREEBUF上曾有同学写过详细的文章,可以查看
4:DAL (data/database access layer)
DALS http://en.wikipedia.org/wiki/Data_access_layer能够有效的防止SQL注入,但是很少有公司知道如何正确的使用,虽然DALS改造比较复杂,但是因为每一个单一的数据库调用需要的修改和插入等操作都在DAL层操作,所以从底层上杜绝的SQL注入的产生。
5:文件系统禁止写入
正确的设置CONFIG文件,设置网站的用户无法在文件系统上写入文件。
6:安全日志审计
日志信息能够很快的帮助用户发现攻击者的踪迹,可以通过一些日志分析系统对IIS、APACHE、NGINX、WINDOWS、LINUX等日志进行实时的分析,如OSSEC、ZABBIX等,构建攻击特征库,发现攻击行为第一时间产生告警。
7:加密存储
从之前的CSDN、世纪佳缘等著名站点被脱裤事件中可以看出,很多站点仍然采用明文的方式存储用户密码,采用一个过时的HASH算法,攻击者可以很轻松的获取到用户的相关信息,而有的站点很多的功能依赖于现有的数据库设计和相关的结构化数据,导致后期更改用户的哈希算法非常棘手。
8:SSL、COOKIE设置HTTPONLY和STS
任何一个网站,如果不支持SSL加密传输,非常容易遭受到中间人攻击。COOKIE没有设置HTTPONLY和STS,也非常容易遭受到跨站攻击。
9:构建安全框架
构建一个适合企业自己的安全框架,程序员在写程序的时候调用安全框架,过滤用户的一切有害输入,如XSS、SQLI、命令注入等等,可以从一定程度上降低安全风险。
10:设置autocomplete=off和强密码
AutoComplete控件就是指用户在文本框输入前几个字母或是汉字的时候,该控件就能从存放数据的文本或是数据库里将所有以这些字母开头的数据提示给用户,供用户选择,提供方便。但是在方便的同时也可能带来一定的安全风险,攻击者可能获取用户键入的一些历史信息,比如密码等。
Web应用安全十大主动安全措施的更多相关文章
- 外媒速递:十大最佳心理学概念助你提升Web设计效果
外媒速递是核子可乐精选的近日国外媒体的精彩文章推荐,希望大家喜欢! 本期给大家推荐的是帮助你提升Web设计效果的十大最佳心理学概念.改善企业云环境协作效率的九款卓越工具.选择移动应用开发工具时要考虑的 ...
- OWASP 2013年十大Web应用安全漏洞
权威的安全组织OWASP 更新了Top 10:https://www.owasp.org/index.php/Top_10_2013-Top_10 十大安全漏洞分别是:1. 注入,包括SQL.操作系统 ...
- 转:OWASP发布Web应用程序的十大安全风险
Open Web Application Security Project(OWASP)是世界范围内的非盈利组织,关注于提高软件的安全性.它们的使命是使应用软件更加安全,使企业和组织能够对应用安全风险 ...
- node.js之十大Web框架
之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了.再到后来是因为Settings-Sync插件二次开发,我需要用node. ...
- 十大web安全扫描工具
本文来源:绿盟整理 <十大web安全扫描工具> 十大web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web 站点上助一臂之力,也就是说在黑客"黑"你之前, 先测 ...
- Web 2.0应用客户端性能问题十大根源《转载》
前言 Web 2.0应用的推广为用户带来了全新的体验,同时也让开发人员更加关注客户端性能问题.最近,资深Web性能诊断专家.知名工具dynatrace的创始人之一Andreas Grabner根据自己 ...
- 10 Future Web Trends 十大未来互联网趋势
转载自:http://blog.sina.com.cn/s/blog_4be577310100ajpb.html 我们很满意自己进入的当前网络纪元,通常被称为Web 2.0.这个阶段互联网的特征包括搜 ...
- 2019年十大开源WEB应用防火墙点评
2019年十大开源WEB应用防火墙点评 随着WEB应用的爆炸式成长和HTTPS加密的普及,针对网络应用层的攻击,像SQL注入.跨站脚本攻击.参数篡改.应用平台漏洞攻击.拒绝服务攻击等越来越多,传统的防 ...
- 十大常见web漏洞及防范
十大常见web漏洞 一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击.SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞.在设计程序,忽略了 ...
随机推荐
- MVC3.0 项目升级到 MVC4.0
按照 http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 的步骤 第一步:修改web.config 注意,默认的MVC3网站 ...
- 处理handler中的内存泄漏
package de.bvb.test; import android.app.Activity; import android.os.Bundle; import android.os.Handle ...
- android使用默认程序进行图片拍照已经裁剪,以及设备读取
//代码如下: package com.cbsw.yulechangsuo.activity; import java.io.File;import java.io.FileInputStream;i ...
- 阅读javascript高级程序设计
第一章 : javascript的简介: js的组成: 1.核心(ECMA) ECMA规定了js的 1,语法 2,保留字 3,关键字, 4,对象, 5,类型 6,操作符 7,语句 2.文档对象模型(D ...
- 文档对象模型(DOM)中的结点属性
在文档对象模型中,每个结点都是一个对象.DOM结点有三个重要的属性:nodeName .nodeValue和nodeType,分别表示结点名称.结点的值和结点的类型 一.nodeName,结点名称,只 ...
- 【Java】模板方法模式
今天介绍的是模板方法模式~ 模板方法模式,由父类定制总体的框架,具体的细节由子类实现. 一般来说,模板方法中有3类方法: 抽象方法,父类声明方法待子类具体实现.比如例子的validate.save.u ...
- [bzoj 3732] Network (Kruskal重构树)
kruskal重构树 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1-N. 图中有M条边 (1 <= M <= 30,000) ,第 ...
- redis3.0.6安装(linux和windows)
官网上描述安装方法如下:$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz$ tar xzf redis-3.0.6.tar.gz$ ...
- Git命令行下解决冲突
使用Git时,在pull.merge.rebase的过程中,经常会遇到conflict的情况. 遇到conflict时,以上处理过程会终端,并且命令行中显示(xxx|MERGING)的状态(Windo ...
- Java方法trim()小记
我们一般用trim()方法的主要作用,是为了去除字符串的首尾空格.然而根据我个人的实践经验发现,trim()这个方法只能去除部分的空格或空白符,比如半角空格:对于全角空格的话,用trim()并不能去除 ...