如何防止 JavaScript 注入,但提供带有代码格式化程序的 ckeditor



我创建了一个基于

SQL Server 2014
C# (ASP.NET)
Javascript and jQuery

用户可以将信息存储在"我的网站"上的文本框中。为了防止注入,我可以使用特殊字符的编码/解码。用户应该能够提交如下代码,但不应执行代码。目前为止,一切都好。

<script type="text/javascript">
    $(document).ready(function () {
        console.log('uuuuups.....');
    });
</script>

此代码将按原样存储到数据库中。(不先编码)。现在我想为我的用户提供一个 ckeditor,并赋予使用代码插件的能力。代码插件本身创建以下代码:

<pre class="brush:jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
    $(document).ready(function () {
        console.log(&#39;uuuuups....&#39;);
    });
&lt;/script&gt;</pre>

我试图在SQL中替换字符,例如

replace(replace(@text, '<', '&lt;'), '>', '&gt;')

但是当我尝试查看时,这似乎破坏了代码。我现在的问题是,如何处理这个问题?我有两次编码吗?每一个提示都将不胜感激。

我在我的网站上使用CKEDITOR,我面临同样的问题,它是关于JavaScript注入的。 如何在不破坏视图的情况下防止它。尝试在服务器端解析"< script ...>javascript code ...</script>"并清除它。我认为在 asp.net 和 php 中找到这个标签并不难。

祝你好运

最新更新