首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种编码由DOMParsing (Antisamy)编码

哪种编码由DOMParsing (Antisamy)编码
EN

Stack Overflow用户
提问于 2012-09-27 13:02:01
回答 1查看 825关注 0票数 1

我正在为一个新的项目使用antisamy,以防止xss的可维护性。在应用程序中,用户可以通过一个简单的excel文件(ansi编码)上传内容。应该可以插入一些html,但不可能插入javascript等等。

当我用antisamy扫描我的输入时,我会得到以下错误:a标记包含一个我们无法处理的属性。href属性的值为"https& #5 8 ;& #4 7 ;& #4 7 ;bla& #4 6 ;bla& #4 6 ;com& #4 7 ;bla& 4 7;……“。由于安全原因,无法接受此值。为了继续处理输入,我们选择了筛选a标记。

我在实体中添加了一些空格,这样你就可以看到它。

(但应该像https://bla.bla.com/bla/.)

当我通过代码进行调试时,“受污染的Html输入”及其href属性似乎是正确的(因此excel文件的编码没有问题)。

反策略文件如下所示:

代码语言:javascript
复制
...
<regexp name="onsiteURL" value="([\w\\/\.\?=&amp;;#-~]+|#(\w)+)"/>
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[A-Za-z0-9]+[~a-zA-Z0-9-_\.@#$%&amp;;:,\?=/\+!]*(\s)*"/>
...
<attribute name="href">
  <regexp-list>
    <regexp name="onsiteURL"/>
    <regexp name="offsiteURL"/>
  </regexp-list>
  <literal-list>
    <literal value="javascript:void(0)"/>
  </literal-list>
</attribute>
...

我还测试了regex模式,因为我认为链接是有效的。当然不是,它是由html实体编码的。

那有什么问题吗?

提前谢谢

我通过AntiSamy代码进行了一些调试,现在我看到了问题,但是我无法解决这个问题。在验证后,HTML实体是由antisamy添加的(如果我要在HTML页面上打印它的话)。但是我的输入将由org.cyberneko.html.parsers.DOMFragmentParser在AntiSamy库中使用以下语句进行解析:parser.parse(新的InputSource(新的StringReader(html)),dom);在我的a标记中,href属性现在包含如下内容:https://bla.bla.com/bla?frame=Frameset[undefinable字符]lang=en insted of https://bla.bla.com/bla?frame=Frameset&lang=en

因此,这似乎是一个编码问题,符号将不再是一个符号。如何找出,我应该使用哪种编码?

编辑:字符为E2 8C A9 ->⟨

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-05 06:45:05

我用"& ;“替换了"&”,做了一个小小的解决办法。我不知道为什么,但很管用。这是唯一一个不能正常工作的角色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12622036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档