Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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/3/flash/4.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
C# 正则表达式来检测字符串中的Javascript_C#_Javascript_Regex_Xss - Fatal编程技术网

C# 正则表达式来检测字符串中的Javascript

C# 正则表达式来检测字符串中的Javascript,c#,javascript,regex,xss,C#,Javascript,Regex,Xss,我正在尝试检测QueryString值中的JavaScript 我有下面的c代码 private bool checkForXSS(字符串值) { 正则表达式正则表达式=新正则表达式(@/(\%3C)|)/I); if(regex.Match(value.Success)返回true; 返回false; } 这可用于检测标记,但不幸的是,如果没有标记,则无法找到匹配项 正则表达式是否可以匹配JavaScript关键字和分号等 这并不意味着涵盖所有XSS攻击基地。这只是一种检测简单JS攻击的方法

我正在尝试检测QueryString值中的JavaScript

我有下面的c代码

private bool checkForXSS(字符串值)
{
正则表达式正则表达式=新正则表达式(@/(\%3C)|)/I);
if(regex.Match(value.Success)返回true;
返回false;
}
这可用于检测
标记,但不幸的是,如果没有标记,则无法找到匹配项

正则表达式是否可以匹配JavaScript关键字和分号等

这并不意味着涵盖所有XSS攻击基地。这只是一种检测简单JS攻击的方法,可以是字符串值。


谢谢

这是一种防止跨站点脚本攻击的非常蹩脚的方法。您需要使用完全不同的方法:确保用户提供的输入是:

  • 进行验证,使其与所收集数据的语义相匹配

  • 每次使用它来构造要由某个语言解释器解释的表达式时(SQL、HTML、Javascript——即使是在使用纯文本日志文件时),都会适当地引用它。恰当的引用完全取决于输出上下文,没有单一的方法可以做到这一点


  • 这是一种防止跨站点脚本攻击的非常蹩脚的方法。您需要使用完全不同的方法:确保用户提供的输入是:

  • 进行验证,使其与所收集数据的语义相匹配

  • 每次使用它来构造要由某个语言解释器解释的表达式时(SQL、HTML、Javascript——即使是在使用纯文本日志文件时),都会适当地引用它。恰当的引用完全取决于输出上下文,没有单一的方法可以做到这一点


  • 第1条规则:使用白名单,而不是黑名单

    您正在阻止执行XSS的一种方法,而不是任何方法。要实现这一点,您必须根据应接受为用户输入的内容验证输入,即

    • 如果需要一个数字,请根据
      /^\d{1,n}$/
    • 如果需要字符串,请根据
      /^[\s\w\.\,]+$/
      等对其进行验证

    有关更多信息,请开始阅读、和一些随机的规则:使用白名单,而不是黑名单

    您正在阻止执行XSS的一种方法,而不是任何方法。要实现这一点,您必须根据应接受为用户输入的内容验证输入,即

    • 如果需要一个数字,请根据
      /^\d{1,n}$/
    • 如果需要字符串,请根据
      /^[\s\w\.\,]+$/
      等对其进行验证

    要了解更多信息,请开始阅读、和一些随机的内容,它应该足以让您检查标记是否
    它应该足以让您检查标记是否有许多嵌入javascript的方法。例如

      %3Cp+style="expression(alert('hi'))"
    
    将通过你的过滤器

    您可能找不到一个神奇的regexp,它可以找到所有的JS,并且不会拒绝很多有效的查询字符串


    这种检查可能有用,但它应该只是深度防御的一部分。

    嵌入javascript的方法很多。例如

      %3Cp+style="expression(alert('hi'))"
    
    将通过你的过滤器

    您可能找不到一个神奇的regexp,它可以找到所有的JS,并且不会拒绝很多有效的查询字符串


    这种检查可能有用,但它应该只是纵深防御的一部分。

    好,然后必须检测子字符串“onmouseover”的存在,等等。。。阅读我的帖子Ok,然后你必须检测子字符串“onmouseover”的存在,等等。。。我的帖子读错了
    onclick
    onmouseover
    等都可以在没有脚本标记的情况下存在;这是一个糟糕的方法
    onclick
    onmouseover
    等都可以在没有脚本标记的情况下存在;这是一个糟糕的方法。我正在使用一个现有的应用程序,其中查询字符串被放到页面上。我需要检查javascript的值,例如警报、函数、事件等和HTML。我上面的正则表达式检查标签,但不检查JS关键字等。我想在将JS放入页面之前剥离它。对不起,但我真的不明白这意味着什么。我正在挑选一个现有的应用程序,其中QueryString被放入页面。我需要检查javascript的值,例如警报、函数、事件等和HTML。我上面的正则表达式检查标签,但不检查JS关键字等。我想在将JS放入页面之前剥离JS。抱歉,但我真的不明白这意味着什么。悲哀的是,没有人听“未知人”笑话,也没有人听“未知人”笑话
      %3Cp+style="expression(alert('hi'))"