Microsoft Anti-XSS (Anti-Cross Site Scripting Library) 避免XSS攻击
上周日讲课,提到SQL Injection(数据注入、资料隐码)攻击 与 XSS攻击
做一下补充。
先介绍一下相关的文章:
.....................................................................................................................................
档案由此下载(v4.3)
http://www.microsoft.com/en-us/download/details.aspx?id=43126
Visual Studio的用户,您也可透过Nuget取得最新版本
.....................................................................................................................................
- ><script>alert(document.cookie)</script>
- ='><script>alert(document.cookie)</script>
- "><script>alert(document.cookie)</script>
- <script>alert(document.cookie)</script>(注:窃取、窥视Cookie)
- <script>alert(vulnerable)</script>
- %3Cscript%3Ealert('XSS')%3C/script%3E(注:隐藏 < 与 >符号,趁机加入script程式)
- <script>alert('XSS')</script>
- <img src="javascript:alert('XSS')">(注:假借图片档名,输入JavaScript指令)
- <img src="http://xxx.com/yyy.png" onerror="alert('XSS')">
- <div style="height:expression(alert('XSS'),1)" />(注:仅限 IE 有效)
Sanitizer的.GetSafeHtml()方法
如果遇见有人在HTML标签里面,偷偷加上JavaScript怎么办?
我们看看下图的范例,竟然有人撰写(输入文字)把超连结<a>里面加上onclick。
Sanitizer的 .GetSafeHtml()方法产生整个网页
产生一个全新的网页,不用担心有人在表头<head>里面动手脚或是加入恶意指令。
Sanitizer的 .GetSafeHtmlFragment()方法,只过滤内容
我们常使用第三方的元件,例如 CKEditor这种线上的网页编辑器,
让使用者张贴文章或是留言时,可以使用 HTML码,修改文字大小与颜色,甚至可以上传图片……
等一下!这不就是造成 XSS攻击的元凶吗!
没错,所以在网页功能上,「便利」与「安全」往往是互斥的,这种两难是无解的。
Sanitizer的.GetSafeHtmlFragment()方法就可以用在这种场合上,
如果您的网页程式里面使用CKEditor这种HTML编辑器元件,由它产生的结果文字
务必透过.GetSafeHtmlFragment()方法处理、净化之后,才能写入资料库!
......还有其他的作法,请参阅相关的资讯。
我将思想传授他人, 他人之所得,亦无损于我之所有;
犹如一人以我的烛火点烛,光亮与他同在,我却不因此身处黑暗。----Thomas Jefferson
写信给我-- mis2000lab (at) yahoo.com.台湾 或是 school (at) mis2000lab.net
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 线上教学影片 http://goo.gl/rGLocQ
*********************************************************************************************
*** 第一天 的 ASP.NET MVC线上课程 免费看(5.5小时)***
************************************************************(欢迎索取,免费申请)*****