为什么getSafeHTML()会抛出错误?

时间:2015-09-26 06:01:06

标签: coldfusion coldfusion-11 antisamy

我似乎收到内容太长的错误,但我从未指明有5000的限制。无论如何,5000太低了

Error validating html input.
Invalid HTML input. Error=The input was too large. The specified input was 6,989 bytes and the maximum is 5,000 bytes.

The error occurred in /Applications/ColdFusion11/cfusion/wwwroot/BS-4-CF/bootstrap/row.cfm: line 39

...

Called from /Applications/ColdFusion11/cfusion/wwwroot/BS-4-CF/views/theme.cfm: line 32
Called from /Applications/ColdFusion11/cfusion/wwwroot/BS-4-CF/index.cfm: line 27

 37 :                               variables.result &= '>';
 38 :                               
 39 :                               variables.result &= getSafeHTML(thisTag.GeneratedContent); // pass through of content
 40 :                               
 41 :                               variables.result &= variables.crlf & '</div><!-- /.row -->';
  

org.owasp.validator.html.ScanException:输入太大。该   指定的输入是6,989字节,最大值是5,000字节。在   org.owasp.validator.html.scan.AntiSamyDOMScanner.scan(AntiSamyDOMScanner.java:101)     在org.owasp.validator.html.AntiSamy.scan(AntiSamy.java:107)at   coldfusion.security.ESAPIUtils.getSafeHTML(ESAPIUtils.java:670)at   coldfusion.runtime.CFPage.GetSafeHTML(CFPage.java:10785)at at   cfrow2ecfm1904818855.runPage(/Applications/ColdFusion11/cfusion/wwwroot/BS-4-CF/bootstrap/row.cfm:39)

1 个答案:

答案 0 :(得分:0)

Antisamy设置存储在cfusion / lib / antisamy-basic.xml中,并且非常清楚地设置了5000个char阈值:

<directive name="maxInputSize" value="5000"/>

对该值的更改会影响getSafeHtml()的运作方式。

我怎么知道这个?我没有。但是当我读到你的问题时,我心中有了去看看。我花了大约30秒来找到它,另外10秒来改变我的测试以证明改变这个值按预期工作。我无能为力,但认为你可以在这里更好地投入时间:自己解决问题,而不是在Stack Overflow上发布。

仍然:你现在有了答案。

第二部分是为什么这个门槛如此愚蠢?主观上,我之所以这么说是因为Adobe ColdFusion团队并不是非常称职,而且他们并没有想到现在5000个字符的HTML并不是很多。他们不会知道这一点,因为他们不是网络开发人员,因此对于他们提供的软件的日常使用并不是特别好。这反复出现,牺牲了用户群。

我为此提出了一个错误:https://bugbase.adobe.com/index.cfm?event=bug&id=4064602。好好利用你的时间可能会投票支持它。