Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Azure防火墙阻止系统请求,SQL注入攻击:检测到SQL操作员_Javascript_Asp.net Mvc_Azure Web App Service - Fatal编程技术网

Javascript Azure防火墙阻止系统请求,SQL注入攻击:检测到SQL操作员

Javascript Azure防火墙阻止系统请求,SQL注入攻击:检测到SQL操作员,javascript,asp.net-mvc,azure-web-app-service,Javascript,Asp.net Mvc,Azure Web App Service,如果检查请求正文打开(建议用于系统安全),则Azure防火墙会阻止某些系统请求 概述: 我有一个对系统的请求,我有一个字符串参数传递给控制器,但在提交过程中,防火墙检测到字符串参数上的SQL运算符,如“.”字符。这导致请求块和响应403禁止错误 我在思考下面的解决方案,我在这个平台上分享了这一点,只是希望有人有更好的想法和解决方案 将字符串参数编码为base-64,但我的问题是,我只是绕过防火墙,如果发生严重的黑客攻击,它仍然不安全 将字符串值转换为二进制代码,它将生成1和0值,与不安全的解决方

如果检查请求正文打开(建议用于系统安全),则Azure防火墙会阻止某些系统请求

概述: 我有一个对系统的请求,我有一个字符串参数传递给控制器,但在提交过程中,防火墙检测到字符串参数上的SQL运算符,如“.”字符。这导致请求块和响应403禁止错误

我在思考下面的解决方案,我在这个平台上分享了这一点,只是希望有人有更好的想法和解决方案

  • 将字符串参数编码为base-64,但我的问题是,我只是绕过防火墙,如果发生严重的黑客攻击,它仍然不安全

  • 将字符串值转换为二进制代码,它将生成1和0值,与不安全的解决方案相同

  • 限制用户在字段上输入特殊字符。缺点是它将限制用户

  • 如果有人有一个更好的主意,那将是非常有帮助的。
    谢谢。

    我仔细查看了这个问题和上面的评论。为了防止程序被SQL注入,程序设计通常不允许通过http请求传输SQL相关字符串

    function AntiSqlValid(oField ){re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;if( re.test(oField.value) ){//alert("pls don't input sql strings"); oField.value = ";oField.className="errInfo";oField.focus();return false;}
    
    我找到了代码片段,也许你可以用它来过滤js代码的字符串,然后你发送http请求

    function AntiSqlValid(oField ){re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;if( re.test(oField.value) ){//alert("pls don't input sql strings"); oField.value = ";oField.className="errInfo";oField.focus();return false;}
    

    function AntiSqlValid(oField){re=/select | update | delete | exec | count | | |“|=| | | |>|那么这些字符实际上是SQL运算符吗?还是它们看起来很像?Azure防火墙报告的实际原因是什么?嗨,尼克,它们看起来很像SQL运算符。这是来自Azure的日志:Warning.Pattern match”(?i:(\\!\\=\\\&\&\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\>>)请求是否通过HTTP发送?URL编码如何?我不确定。