SiteFactory几个安全相关的配置说明

作者:wjlsunshine 来源:本站原创 点击数: 发布时间:2008年07月02日

Web.config 安全相关配置
web.config 位于根目录
1、authentication节点


     





基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。其中元素loginUrl表示登陆网页的名称,name表示Cookie名称

2、authorization 节点


        
   



allow      向授权规则映射添加一个规则,该规则允许对资源进行访问。
deny      向授权规则映射添加一条拒绝对资源的访问的授权规则。
users="*"  是指任何用户      users="?"  是指经身份验证的用户
注意: 运行时,授权模块从最本地的配置文件开始,循环访问 allow 和 deny 元素,直到它找到适合特定用户账户的第一个访问规则。然后,该授权模块根据找到的第一个访问规则是 allow 还是 deny 规则来允许或拒绝对 URL 资源的访问。默认的授权规则为。因此,默认情况下允许访问,除非另外配置。
如果在根目录下的web.config配置太繁琐,可以配置到相应目录下,例如User目录下的web.config文件

3、customErrors 节点


   
     <customerrors defaultredirect="url"               mode="On|Off|RemoteOnly">      



defaultRedirect  可选的属性。指定出错时将浏览器定向到的默认 URL。如果未指定该属性,则显示一般性错误。
Mode  必选的属性。指定是启用或禁用自定义错误,还是仅向远程客户端显示自定义错误。
此属性可以为下列值之一。
值  说明 
On  指定启用自定义错误。如果未指定 defaultRedirect,用户将看到一般性错误。
Off  指定禁用自定义错误。这允许显示标准的详细错误。
RemoteOnly  指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。
默认值为 RemoteOnly。
error 可选的元素。指定给定 HTTP 状态代码的自定义错误页。错误标记可以出现多次。子标记的每一次出现均定义一个自定义错误条件。
例如:


     




这里可以让用户自定义出错页。

4、pages 节点




validateRequest="true"


 


该值确定 ASP.NET 是否针对危险值检查来自浏览器的输入。如果 ASP.NET 针对危险值检查来自浏览器的输入,则为 true;否则为 false。默认值为 true。
这个功能是为了防止跨站脚本等危险代码。使全局默认为true。只有小数页面,如搜索页面
Search.aspx   设为 :  ValidateRequest="false" 。为了可以搜索类似

等内容,如果只是文字性的输入,可修改页 search.aspx 的设置,以增强系统安全性。


Security.config 配置说明

文件位于config目录
1、后台页面访问配置
noCheckAdminLogOn
后台不检查权限的页面


 




2、检查外站链接的后台页面配置
noCheckUrlReferrer
后台不检查来源页的列表,即管理员用户可以直接访问的文件列表。后台设置是默认不允许直接访问,这样可以保护后页页面不被非法方式访问和外站链接访问,有效防止跨站请求伪造。


     


如果文件不在列表中,直接在URL 里访问,将出现错误提示:

产生错误的可能原因:
对不起,为了系统安全,不允许直接输入地址访问本系统的后台管理页面。

如需要,用户可以加上自定义的内容。

3、防止跨站请求伪造追加安全码的页面配置

checkSecurityCode 
页面提交时检查安全码。
防止不正常操作(恶意操作)造成系统重大损失。也是对一些重要操作的保护,防止跨站请求伪造。
如:


   


4、页面操作权限码的配置

checkPermissions
页面操作权限码的配置,检查后台管理员是否有相关操作码的权限。


     


operateCode  为操作码 根据操作码判断是否存在此操作的权限。
checkType   权限判断类型, or  and
          or   操作码中的权限进行或运算,即有其中任何一种权限,就返回true
               这个默认值是or 而且对于单一权限码的,可以不用配置
          and  操作码中的权限进行与运算,即要求有全部权限才返回true 否则返回false.

AjaxLabel.config  配置说明
是对AJAX.aspx 的文件访问权限控制配置文件。
由于前台AJAX标签过于强大,会致使 AJAX标签 会出现一些危险性,对此我们做了一个XML安全文件来配置那些AJAX标签可以直接引用。这个AjaxLabel.config 文件是在 网站根目录的Config 目录下。如果标签没有记录,就会出现 本标签禁止访问!
例如:



是指标签名 为 “内容评论PK标签” 的标签可以被ajas.aspx调用,而且参数param只能为 "generalid",类型为Int,这样能有效防止恶意攻击。
如果用户需自定义标签,而且需要ajax.aspx 文件调用,那就在AjaxLabel.config 中配置

app_offlineX.htm 文件作用
       如果你要COPY站点,进行站点维护,部署,和进行大量修改,有可能要停掉你的WEB应用程序了,而以一个友好的方式提示给用户,比如什么“本网站正在更新”等等的信息,你可以把文件app_offlineX.htm 改名为app_offline.htm(大小写没关系)的静态HTM页面文件,其中修改成你要临时显示的内容,将其放在你的应用的根目录下。这样,任何外部的请求的话,都会马上被转移到该页面了。
       网站维护完成后记得将文件名app_offline.htm改回。

AllowString.xml 文件配置
文件位于Common目录下
       文件的作用是:会员发表信息时启用防XSS(跨站攻击)设置时,让用户设置允许会员提交部份特殊js 代码。
       XSS是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
 
例如:


 onmousewheel="return bbimg(this)"
 onload="resizepic(this)"


  功能是: 允许保留 onmousewheel="return bbimg(this)"  和 onload="resizepic(this)" 代码。这是对FCK上传图片功能的一个保留。
如用户想让系统过滤不要太严格,可在这里加上相应保留代码。

QueryStrings.config配置

 

相关贴: