工具

urlscan_v31_x64

urlscan_v31_x86

URLScan是一个IIS下的ISAPI 筛选器,它能够限制服务器将要处理的HTTP请求的类型。通过阻止特定的 HTTP 请求,URLScan 筛选器可以阻止可能有害的请求到达服务器并造成危害,urlScan 3.1支持IIS6、IIS7。

URLScan配置文件在 C:\Windows\System32\inetsrv\urlscan

下面是配置文件的说明

UseAllowVerbs=1
; 允许的请求的HTTP类型;
; 如果设置为 1,则[AllowVerbs]生效;
; 如果设置为 0,则[AllowVerbs]生效。

UseAllowExtensions=0
; 允许请求的后缀类型;
; 如果设置为 0,则[DenyExtensions]生效;
; 如果设置为 1,则[AllowExtensions]生效。

NormalizeUrlBeforeScan=1
; 扫描标准化URL之前。

VerifyNormalization=1
; 查证标准化URL。

AllowHighBitCharacters=1
; 如果设置为 1,将允许URL中存在所有字节;
; 如果设置为 0,含有非ASCII字符的URL将拒绝(如UTF8或者MBCS)。

AllowDotInPath=0
; 如果设置为0,则URLScan 拒绝所有包含多个句点 (.) 的请求。

RemoveServerHeader=0
;设置为1可隐藏服务器信息。

EnableLogging=1
; 开启日志记录

PerProcessLogging=0
; 如果设置为0,为每个进程创建日志文件。

AllowLateScanning=0
; 如果设置为 0,则 URLScan 作为高优先级筛选器运行。

PerDayLogging=1
; 如果设置为 1,则URLScan每天创建一个新的日志文件。

UseFastPathReject=0
; 如果设置为 1,则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。
; 如果设置为 0,则 URLScan 使用 RejectResponseUrl 设置来返回请求。

LogLongUrls=0
; 这个属性是UrlScan 3.0及以后的弃用。UrlScan禁止3.0及以后总是包括完整的日志文件的URL。

UnescapeQueryString=1
;如果设置为1,UrlScan将执行两个传递查询字符串扫描后与原始查询字符串和一次unescaping
;如果设置为0,UrlScan禁止只会看看原始客户端发送的查询字符串

RejectResponseUrl=
; 设置用于返回的Url路径

AlternateServerName=
; 如果将 RemoveServerHeader设为0,此可自定义服务器关信息。
; 如果将 RemoveServerHeader设为1,则此选项将被忽略。

[AlwaysAllowedUrls]
;
; 这里列出的url将永远是显式地允许UrlScan禁止并将绕过所有UrlScan禁止检查。列出的url必须用“/”字符。例如:
;
;   /SampleURL.htm
;

[DenyUrlSequences]
;
; 如果任何字符序列列在这里出现在任何的URL请求,该请求将被拒绝。
;

..  ; 不允许目录遍历
./  ; 不允许拖点目录名称
\   ; 不允许反斜杠的URL
:   ; 不允许交替流的访问
%   ; 不允许正常化后溢出
&   ; 不允许多个CGI进程在单个请求中运行

在参数中过滤sql注入的一些关键字

[DenyQueryStringSequences]
;
;如果任何字符序列这里列出在查询字符串中出现任何请求,该请求将被拒绝。
;

下面是一些常用的关键字就不一一列举了

<   ; 常用的脚本注入攻击
>   ;
--  ;
delete ;
select ;

注意:设置好这些以后需要重启一下iis,urlscan才能生效

最近有看到了一个防止注入的软件

地址 http://www.safedog.cn/install_desc_website.html

说明文档 http://www.safedog.cn/download/software/safedogwz_Windows_Help.pdf

参考 http://blog.csdn.net/huwei2003/article/details/6259757

urlScan 配置阻止sql注入的更多相关文章

  1. egg 阻止 sql 注入,相关文章

    egg 阻止 sql 注入,相关文章 网址 注意!!我们极其不建议开发者拼接 sql 语句,这样很容易引起 sql 注入!!如果必须要自己拼接 sql 语句,请使用 mysql.escape 方法. ...

  2. 如何阻止sql注入(pdo篇)

    Use prepared statements and parameterized queries. These are SQL statements that are sent to and par ...

  3. 结合jquery的前后端加密解密 适用于WebApi的SQL注入过滤器 Web.config中customErrors异常信息配置 ife2018 零基础学院 day 4 ife2018 零基础学院 day 3 ife 零基础学院 day 2 ife 零基础学院 day 1 - 我为什么想学前端

    在一个正常的项目中,登录注册的密码是密文传输到后台服务端的,也就是说,首先前端js对密码做处理,随后再传递到服务端,服务端解密再加密传出到数据库里面.Dotnet已经提供了RSA算法的加解密类库,我们 ...

  4. 实例讲解 SQL 注入攻击

    这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读.翻译水平有限,见谅! 一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试. ...

  5. 【转载】SQL注入

             "SQL注入"是一种利用未过滤/未审核用户输入的攻击方法("缓存溢出"和这个不同),意思就是让应用运行本不应该运行的SQL代码.如果应用毫无防 ...

  6. SQL注入之代码层防御

    [目录] 0x0 前言 0x1 领域驱动的安全 1.1 领域驱动的设计 1.2 领域驱动的安全示例 0x2 使用参数化查询 2.1 参数化查询 2.2 Java中的参数化语句 2.3 .NET(C#) ...

  7. sql注入攻防 以php+mysql为例

    随着Web应用的高速发展和技术的不断成熟,对Web开发相关职位的需求量也越来越大,越来越多的人加入了Web开发的行列.但是由于程序员的水平参差不齐或是安全意识太低,很多程序员在编写代码时仅考虑了功能上 ...

  8. Java防止SQL注入2(通过filter过滤器功能进行拦截)

    首先说明一点,这个过滤器拦截其实是不靠谱的,比如说我的一篇文章是介绍sql注入的,或者评论的内容是有关sql的,那会过滤掉:且如果每个页面都经过这个过滤器,那么效率也是非常低的. 如果是要SQL注入拦 ...

  9. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

随机推荐

  1. Navicat生成数据库结构同步SQL

    作为一个苦逼的技术男,在做开发的时候经常会遇见程序版本升级,数据库结构变化.我们需要一个快捷的方式让客户尽快从旧版本数据库结构更新至新版本数据库结构.如果每做一次改动我们就记录一下当然是好事,但是万一 ...

  2. python xml包 xml.etree.ElementTree使用记录

    19.7.1 教程 这是一个简短的教程使用xml.etree.ElementTree(简称为et).目标是展示一些构建模块和模块的基本概念 9.7.1.1. XML tree and elements ...

  3. Poj1163 The Triangle(动态规划求最大权值的路径)

    一.Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a pro ...

  4. QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

  5. Python:collections的deque()方法

    转于:https://www.cnblogs.com/zhenwei66/p/6598996.html 博主:http://www.cnblogs.com/zhenwei66/(渐晨) python3 ...

  6. java ----一个函数传回多个值的总结

    java 一个函数如何返回多个值 参考方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者通过源代码来查看. 2.传入一个引用进去,修改引用的属性值.问 ...

  7. Java Numbers

    通常情况下,当我们与数字打交道,使用原始数据类型,如字节,如int,long,double等 例子: int i = 5000; float gpa = 13.65; byte mask = 0xaf ...

  8. UI面试题(1)

    1.请创建一个数组对象[@“ad”,@“bc”,@“sdf”,@“yu”],并且对该数组对象进行排序(使用冒泡排序); NSMutableArray *array = [NSMutableArraya ...

  9. BZOJ4085: [Sdoi2015]音质检测

    BZOJ4085: [Sdoi2015]音质检测 由于这题太毒了,导致可能会被某些人卡评测,于是成了一道权限题... 本蒟蒻表示没钱氪金... 但是可以去洛谷/Vijos搞搞事... 但是洛谷上只能评 ...

  10. Windows 10 PC 安装 Docker CE

    系统要求 Docker CE 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V. 如果系统是win 10 家庭版安装 docker  很恶心, 我也是废了2天才安装, 由 ...