在网站开发中程序员要特别处理安全事件,网站安全过滤程序是每个程序员的基本知识,如果你给客户做的网站有漏洞不安全会导致客户资料泄露,重者会造成经济损失。
网站漏洞介绍之:xxs脚本跨站漏洞关于微软安全组件Microsoft.Security.Application的使用。
搜遍百度也没有找到简单易用的中文说明文档。今天肥城网站建设公司肥城龙山网络管理员,给做网站的程序员们介绍下这个英文组件如何使用。
首先是 组件的下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=28589
组件下载后有2.0 3.5 4.0针对不同的.net 版本。针对你的开发环境用哪一个都行。
第一步引用:using Microsoft.Security.Application;
第二步使用环境举例:
我们可以在英文说明帮助中看到提供三个类:Encoder Sanitizer UnicodeCharacterEncoder
我们常用的是第一个和第二个
Encoder 类提供很多方法,是过滤html和css js xml等的各种方法
=================================
举例1
string str = "<a href='http://www.longshannet.com/' title='肥城网站建设'>肥城网站建设</a>龙山网络<script>alert('我是js代码哦');</script>";
// Response.Write(Sanitizer.GetSafeHtml(str));
Response.Write(Encoder.UrlEncode(str));
输出结果为:<a href='http://www.longshannet.com/' title='肥城网站建设'>肥城网站建设</a>龙山网络<script>alert('我是js代码哦');</script>
也就是说原文输出,并没有起到html标记的样式,当做一个纯文本输出了,这样很好的防止了脚本攻击。
还有比如:Encoder.UrlEncode()方法可以转义成字符,以至于不会允许脚本。
===========================
举例2:Sanitizer 类是 消毒作用,就是去掉危害的代码比如:文本中带<script ></script>
比如: Response.Write(Sanitizer.GetSafeHtml(str));
结果是:<html>
<body>
<a title="肥城网站建设">肥城网站建设</a>龙山网络
</body>
</html>
为什么结果还带个html body呢,因为这个方法是以单独的html页面输出的,如果不需要输出单独的页面,那么可以用
这个方法 Response.Write(Sanitizer.GetSafeHtmlFragment(str)); 片段输出方法。
============================================
|