【问题标题】:Javascript injectionJavascript注入
【发布时间】:2010-03-03 15:05:16
【问题描述】:

我需要解决表单文本区域和字段中的 javascript 注入问题

script type='text/javascript'
window.location='http:site.com';

/脚本

a href='javascript:...'

表单操作...

input name...

但我保留了一些 html 标签,例如 a、b、ul……这可能吗?

【问题讨论】:

标签: php javascript code-injection


【解决方案1】:

尝试使用HTML Purifier 指定您希望允许哪些类型的 HTML 来保护自己免受此类 XSS 攻击。

【讨论】:

    【解决方案2】:

    如果您担心 XSS,则需要在服务器端处理输入以确保其中没有 JavaScript。希望这个 Perl 示例会有所帮助(为正则表达式道歉,这不是我的强项)

    use strict;
    my $str = <<HTML;
    <body>
            <div>
                    sfdasfasdfs
                    <script type="text/javascript">
                            window.location.href = "http://badsite.com";
                    </script>
                    sadfssdfssdf
            </div>
    </body>
    HTML
    
    $str =~ s/<script.*?>[\s\w\d\W]*<\/script>//g;
    
    print "$str\n";
    

    【讨论】:

    • 这不会删除问题中给出的大多数示例。就此而言,它也不会删除&lt;SCRIPT&gt;!使用 HTML 解析器来解析 HTML。编写足够多的正则表达式来确保一段 HTML 安全是非常困难的(最终会产生大量代码)。
    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2017-06-10
    • 1970-01-01
    • 2014-05-24
    相关资源
    最近更新 更多