【问题标题】:Disable code in comment system在评论系统中禁用代码
【发布时间】:2014-02-06 09:11:09
【问题描述】:

我创建了一个评论系统,人们可以在其中评论某个主题。评论存储在 SQL 数据库中。现在,为了避免恶意链接,或将 JS/HTML/PHP 代码插入到可以执行的注释中。我该如何防止这种情况发生?假设评论是一段JS代码..点赞

<script> document.DoSomething()</script>

我将如何防止这种情况发生?谢谢。

【问题讨论】:

标签: javascript html insertion


【解决方案1】:

将评论与正则表达式匹配,如下所示:

comment.match(/&lt;script&gt;.+&lt;/script&gt;/)

如果有匹配,则不允许。

【讨论】:

    【解决方案2】:

    您需要清理和/或编码您正在显示的用户输入。

    这是一个服务器发送内容如何对其进行编码的示例(这是 Microsoft .NET)

    <script><%=Html.Encode(serverSide.DoSomething())%></script>
    

    擦洗是一个热门话题。大多数情况下,最好使用现成的东西,因为此类攻击的变化如此之多,从头开始通常不会为您提供从现有库中获得的覆盖范围。以这个为例:https://code.google.com/p/google-caja/

    【讨论】:

    • 其实我是用htmlspecialchars过滤的,现在代码就这样放好了。 AnyHREF 标签不起作用,php 或 JS 标签也不起作用。是不是万无一失?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2018-05-24
    • 2012-05-04
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多