如何防止跨站点脚本攻击
你好~
XSS漏洞产生的原因:
跨站点脚本的主要原因是程序猿对用户的信任。开发人员轻松地认为用户永远不会试图执行什么出格的事情,所以他们创建应用程序,却没有使用任何额外的代码来过滤用户输入以阻止任何恶意活动。另一个原因是,这种攻击有许多变体,用制造出一种行之有效的XSS过滤器是一件比较困难的事情。
但是这只是相对的,对用户输入数据的”编码”和”过滤”在任何时候都是很重要的,我们必须采取一些针对性的手段对其进行防御。
如何创造一个良好的XSS过滤器来阻止大多数XSS攻击代码
1 .需要重点”编码”和”过滤”的对象
The URL
HTTP referrer objects
GET parameters from a form
POST parameters from a form
Window.location
Document.referrer
document.location
document.URL
document.URLUnencoded
cookie data
headers data
database data
防御XSS有一个原则:
以当前的应用系统为中心,所有的进入应用系统的数据都看成是输入数据(包括从FORM表单或者从数据库获取到的数据),所有从当前应用系统流出的数据都看作是输出(包括输出到用户浏览器或向数据库写入数据)
对输入的数据进行”过滤”,对输出数据进行”编码”。这里的”编码”也要注意,必须针对数据具体的上下文语境进行针对性的编码。例如数据是输出到HTML中的那就要进行HtmlEncode,如果数据是输出到javascript代码中进行拼接的,那就要进行javascriptEncode。
如果不搞清楚数据具体输出的语境,就有可能因为HtmlParser()和javascriptParser()两种解析引擎的执行先后问题导致看似严密的”编码”形同虚设。
2. HtmlEncode HTML编码
它的作用是将字符转换成HTMLEntities,对应的标准是ISO-8859-1
为了对抗XSS,在HtmlEncode中要求至少转换以下字符:
--
--
--
" -- "
' -- '
/ -- /
在PHP中:
htmlentities
http://www.w3school.com.cn/php/func_string_htmlentities.asp
htmlspecialchars
http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
3. javascriptEncode javascript”编码”
javascriptEncode与HtmlEncode的编码方法不同,HtmlEncode是去编码,而javascriptEncode更多的像转义,它需要使用”\”对特殊字符进行转义。从原理上来讲,这都符合编码函数的一个大原则: 将数据和代码区分开,因为对于HTML Tag来说,我们对其进行”可视化(转换成可以见字符)”的编码可以将数据和HTML的界限分开。而对于javascript来说,我们除了要进行编码之外,还需要对特殊字符进行转义,这样攻击输入的用于”闭合”的特殊字符就无法发挥作用,从而避免XSS攻击,除此之外,在对抗XSS时,还要求输出的变量必须在引号内部,以避免造成安全问题。
escape()
http://www.w3school.com.cn/js/jsref_escape.asp
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ – _ + . / 。其他所有的字符都会被转义序列(十六进制\xHH)替换。
利用这个编码函数,不仅能防御XSS攻击,还可以防御一些command注入。
一些开源的防御XSS攻击的代码库:
PHP AntiXSS
这是一个不错的PHP库,可以帮助开发人员增加一层保护,防止跨站脚本漏洞。
https://code.google.com/p/php-antixss/
xss_clean.php filter
https://gist.github.com/mbijon/1098477
HTML Purifier
http://htmlpurifier.org/
xssprotect
https://code.google.com/p/xssprotect/
XSS HTML Filter
http://finn-no.github.io/xss-html-filter/
原文地址:http://resources.infosecinstitute.com/how-to-prevent-cross-site-scripting-attacks/
希望可以帮助到你~望采纳哦~谢谢~
xss什么意思
xss
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
学信息安全需要哪些基础
一:学网络安全需要的知识:
1、必须精通TCP/IP协议族。
2、学习和了解各种OS 平台,如:linux,UNIX,BSD 等。
3、随时关注网络安全最新安全动态。
4、熟悉有关网络安全的硬软件配置方法。尤其交换机和路由的配置。
5、多泡网络安全论坛。
6、终身学习。
二:网络安全必修课程:(后面的教材仅为参考)
1、专业基础:
1)C/C++:【C++Primer中文版 还有题解c++ primer 需要一定的C++基础,如果要比较基本的话,钱能的那本不错,清华大学出版社的。 c programming languge 全球最经典的C语言教程 中文名字c程序设计语言】
2)汇编语言 asm
3)操作系统【linux,UNIX,BSD】UBUNTU是linux操作系统 鸟哥的linux私房菜】
4)计算机网络
2、系统编程:(Windows核心及网络编程)
2.1、精通VC/C++编程,熟悉windows网络SOCKET编程开发
1)《Windows网络编程(第二版)》(附光盘),(美)Anthony Jones, Jim Ohlund著;杨合庆译;清华大学出版社,2002.1
2)《Windows 核心编程(第四版)》(附光盘),(美)Jetfrey Richter著,王建华 等译;机械工业出版社,2006.9
2.2、逆向工程:
1)《加密与解密(第二版)》(附光盘),段钢 著,电子工业出版社;2004.5
3、网络协议:
1)《计算机网络实验教程》(《COMPUTER NETWORKS: INTERNET PROTOCOLS IN ACTION》),(美)JEANNA MATTHEWS著,李毅超 曹跃 王钰 等译,人民邮电出版社,2006.1
2)《TCP/IP协议详解卷一:协议》、《TCP/IP详解卷2:实现》、《TCP/IP详解卷3:TCP 事务协议、HTTP、NNTP和UNIX域协议》,美 W.Richard Stevens 著,机械工业出版社,2004.9或《用TCP/IP进行网际互联第一卷:原理、协议与结构》、《用TCP/IP进行网际互联第二卷:设计、实现与内核》、《用TCP/IP 进行网际互联第三卷:客户-服务器编程与应用》(第四版)、(美)Douglas E.Comer林瑶 等,电子工业出版社,2001 年5月
4、网络安全专业知识结构:
1)《信息安全原理与应用(第三版)》(《Security in Computing》),(美)CharlesP Pfleeger,Shari Lawrence Pfleeger著;李毅超,蔡洪斌,谭浩 等译; 电子工业出版社,2004.7
2)《黑客大曝光--网络安全机密与解决方案》(第五版),(美)Stuart McClure,Joel Scambray, George Kurtz;王吉军 等译,清华大学出版社,2006年4月
三:英语学好,也是有用的,尤其是考一些比较有用的证。
github为什么不能使用翻译插件
可以啊你用猎豹浏览器上去后,他会询问你要不要翻译网页,如果没有继续追问,我给你截图,好的话,采纳啊,亲!
CI 防注入方面,到底过滤特殊字符没有
看这里
https://github.com/EllisLab/Code ... sql_driver.php#L301
$this-input-post('name',true);
这个是XSS过滤
手册有注明的
http://codeigniter.org.cn/user_guide/libraries/input.html
首先要搞清 xss 过滤,和sql注入是两码事,两个转义的方式不同,你给出的需要过滤的串 不需要转义。
你可以验证xss 过滤 script xss 过滤是可以的,至于说防止sql注入,不要怀疑ci 防注入的能力,你可以亲自注入一下。就知道结果了
Xss是什么意思
xss:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
怎样用 wpscan,nmap 和 nikto 扫描和检查一个 wordpress 站点的安全性
1.用 WPScan 测试 WordPress 中易受攻击的插件和主题
WPScan 是一个 WordPress 黑盒安全扫描软件,用 Ruby 写成,它是专门用来寻找已知的 WordPress 的弱点的。它为安全专家和 WordPress 管理员提供了一条评估他们的 WordPress 站点的途径。它的基于开源代码,在 GPLv3 下发行。
2.下载和安装 WPScan
在我们开始安装之前,很重要的一点是要注意 wpscan 不能在 Windows 下工作,所以你需要使用一台 Linux或者 OS X 的机器来完成下面的事情。如果你只有 Windows 的系统,拿你可以下载一个 Virtualbox 然后在虚拟机里面安装任何你喜欢的 Linux 发行版本。
WPScan 的源代码放在 Github 上,所以需要先安装 git(LCTT 译注:其实你也可以直接从 Github 上下载打包的源代码,而不必非得装 git )。
sudo apt-get install git
git 装好了,我们就要安装 wpscan 的依赖包了。
sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev ruby1.9.3
把 wpscan 从 github 上 clone 下来。
git clone https://github.com/wpscanteam/wpscan.git
现在我们可以进入这个新建立的 wpscan 目录,通过 bundler 安装必要的 ruby 包。
cd wpscan
sudo gem install bundler bundle install --without test development
现在 wpscan 装好了,我们就可以用它来搜索我们 WordPress 站点潜在的易受攻击的文件。wpcan 最重要的方面是它能列出不仅是插件和主题,也能列出用户和缩略图的功能。WPScan 也可以用来暴力破解 WordPress —— 但这不是本文要讨论的内容。
3.更新 WPScan
ruby wpscan.rb --update
列举插件
要列出所有插件,只需要加上 “--enumerate p” 参数,就像这样:
ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate p
或者仅仅列出易受攻击的插件:
ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate vp
下面是一些例子:
| Name: ukiscet
| Location: http://********.com/wp-content/plugins/akismet/
| Name: audio-player
| Location: http://********.com/wp-content/plugins/audio-player/
|
| * Title: Audio Player - player.swf playerID Parameter XSS
| * Reference: http://seclists.org/bugtraq/2013/Feb/35
| * Reference: http://secunia.com/advisories/52083
| * Reference: http://osvdb.org/89963
| * Fixed in: 2.0.4.6
| Name: bbpress - v2.3.2
| Location: http://********.com/wp-content/plugins/bbpress/
| Readme: http://********.com/wp-content/plugins/bbpress/readme.txt
|
| * Title: BBPress - Multiple Script Malformed Input Path Disclosure
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86399
| * Reference: http://www.exploit-db.com/exploits/22396/
|
| * Title: BBPress - forum.php page Parameter SQL Injection
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86400
| * Reference: http://www.exploit-db.com/exploits/22396/
| Name: contact
| Location: http://********.com/wp-content/plugins/contact/
4.列举主题
列举主题和列举插件差不多,只要用"--enumerate t"就可以了。
ruby wpscan.rb --url http(s)://www.host-name.com --enumerate t
或者只列出易受攻击的主题:
ruby wpscan.rb --url http(s)://www.host-name.com --enumerate vt
例子的输出:
| Name: path
| Location: http://********.com/wp-content/themes/path/
| Style URL: http://********.com/wp-content/themes/path/style.css
| Description:
| Name: pub
| Location: http://********.com/wp-content/themes/pub/
| Style URL: http://********.com/wp-content/themes/pub/style.css
| Description:
| Name: rockstar
| Location: http://********.com/wp-content/themes/rockstar/
| Style URL: http://********.com/wp-content/themes/rockstar/style.css
| Description:
|
| * Title: WooThemes WooFramework Remote Unauthenticated Shortcode Execution
| * Reference: https://gist.github.com/2523147
| Name: twentyten
| Location: http://********.com/wp-content/themes/twentyten/
| Style URL: http://********.com/wp-content/themes/twentyten/style.css
| Description:
5.列举用户
WPscan 也可以用来列举某个 WordPress 站点的用户和有效的登录记录。攻击者常常这么做——为了获得一个用户清单,好进行暴力破解。
ruby wpscan.rb --url http(s)://www.host-name.com --enumerate u
列举 Timthumb 文件
关于 WPscan ,我要说的最后一个功能是列举 timthub (缩略图)相关的文件。近年来,timthumb 已经成为攻击者眼里的一个常见目标,因为无数的漏洞被找出来并发到论坛上、邮件列表等等地方。用下面的命令可以通过 wpscan 找出易受攻击的 timthub 文件:
ruby wpscan.rb --url http(s)://www.host-name.com --enumerate tt