CKeditor过滤js代码问题

黄腾辉 发布于 2013/01/08 14:33
阅读 2K+
收藏 0

@红薯 你好,想跟你请教个问题:ckeditor怎么过滤掉js代码,因为如果编辑器不过滤掉js代码的话,会存在一些安全隐患,就是用户,可以根据编辑器编写js代码来获取页面上的信息。。所以有什么办法能过滤掉javascript包括(<script>,事件里onclik等)

加载中
0
红薯
红薯
ckeditor 我没用过,kindeditor 是可以过滤的。但这种过滤是不可靠的,最好在服务器端过滤。
黄腾辉
黄腾辉
非常感谢。。
0
李恺
李恺

服务端过滤好像这个还不错。

http://www.oschina.net/p/html+purifier

wuliang
wuliang
回复 @李恺 : xss-html-filter完全行不通。 你在测试代码里加段试试就知道了 t("<p><a href='http://wuliang.org/' onclick='stealCookies()'>Link</a></p>", "<p><a href=\"http://wuliang.org/\">Link</a></p>");
黄腾辉
黄腾辉
看看
李恺
李恺
回复 @黄腾辉 : 搜了下, 这个可以否http://www.oschina.net/p/xss-htmlfilter
黄腾辉
黄腾辉
你这是php的,有没有java的
0
wuliang
wuliang
可以用Jsoup,但要即要保持html tag以要过虑xss其实是无解的。因为在style里也可以放入JS代码。如果可以的话考虑用Markdown或者textile的编辑器
{
            String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
            String safe = Jsoup.clean(unsafe, Whitelist.basic());
            // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>
            String expected = "<p><a href=\"http://example.com/\" rel=\"nofollow\">Link</a></p>";
            assertEquals(expected, safe);
        }
        {
            String safeText = "<p><strong style=\"margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 14.44444465637207px; vertical-align: baseline; color: rgb(85, 85, 85); font-family: Arial, Helvetica, sans-serif; line-height: 25px;\">酒店点评</strong></p>";
            String safe = Jsoup.clean(safeText, Whitelist.relaxed().addAttributes(":all","style").preserveRelativeLinks(true));
            assertEquals(safeText, safe);
        }
        {
            String safeText = "<p><img src=\"/resources/roomPic/4fd08040e4b0cc89a5330a9f/webscale_540x360.JPG\" style=\"margin:5px;\" /></p>";
            String safe = Jsoup.clean(safeText, "http://www.lesuke.com/", Whitelist.relaxed().addAttributes(":all","style").addAttributes(":all","src").preserveRelativeLinks(true));
            assertEquals(safeText, safe);
        }
0
Gerard
Gerard
<script>alert();</script>
0
返回顶部
顶部