在IIS web.config

时间:2019-03-27 19:46:54

标签: azure api iis web-config

出于SSR的目的,我正在运行一个API和一个前端节点服务器。使用App Services,一切都在Azure上。

节点服务器和客户端均向API发出请求。

我正在尝试在API的web.config中应用“ dynamicIpSecurity”,但不希望该安全设置限制我的节点服务器IP,因为它是受信任的“客户端”。

目标是通过此设置限制所有其他客户端IP,以防客户端决定在没有我允许的情况下尝试欺骗我或对API进行负载测试。

我目前已注释掉动态IP安全设置,但这就是它们的外观。

<dynamicIpSecurity>
    <!--Restricting single IP to make maximum of 20 concurrent request at a time-->
    <denyByConcurrentRequests enabled="true" maxConcurrentRequests="20" />

    <!--Restricting single IP NOT to make more than 50 requests within 3 seconds duration-->
    <denyByRequestRate enabled="true" maxRequests="50" requestIntervalInMilliseconds="3000"/>
</dynamicIpSecurity>

1 个答案:

答案 0 :(得分:0)

article中,<dynamicIpSecurity>只能使用denyByConcurrentRequestsdenyByRequestRate来阻止基于The number of concurrent requests的IP地址的请求,或者 The number of requests over a period of time

尽管article说过,<dynamicIpSecurity>可能Allow list of IP addresses that will not be blocked。但是,在web.config中无法配置,只能在IIS中完成。

因此,如果您仍然想定义基于IP的安全限制列表,则可以使用<ipSecurity>,如下所示:

<security>
   <ipSecurity allowUnlisted="true">
      <add ipAddress="192.168.100.1" />
      <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" />
   </ipSecurity>
   <dynamicIpSecurity enableLoggingOnlyMode="true">
       <denyByConcurrentRequests enabled="true" maxConcurrentRequests="10" />
       <denyByRequestRate enabled="true" maxRequests="30"
           requestIntervalInMilliseconds="300" />
   </dynamicIpSecurity>
</security>