是否存在防止输入Javascript的正则表达式?
我有一个文本区域,我需要防止javascript进入。如果他们输入文本。然后说一些javascript,javascript运行。并且文本不会被输入 我想有没有办法阻止javascript被输入文本字段(比如validation.xml中的regex?),或者有没有其他方法可以阻止javascript运行(可能是在jsp上) 以下是我得到的: JSP:是否存在防止输入Javascript的正则表达式?,java,javascript,xml,jsp,validation,Java,Javascript,Xml,Jsp,Validation,我有一个文本区域,我需要防止javascript进入。如果他们输入文本。然后说一些javascript,javascript运行。并且文本不会被输入 我想有没有办法阻止javascript被输入文本字段(比如validation.xml中的regex?),或者有没有其他方法可以阻止javascript运行(可能是在jsp上) 以下是我得到的: JSP: 您还有${const['COMMENT\u MAX\u LENGTH']-fn:LENGTH(commentForm.COMMENT)}个字符
您还有${const['COMMENT\u MAX\u LENGTH']-fn:LENGTH(commentForm.COMMENT)}个字符。
以下是我的validation.xml:
<form name="whatif_add_entry_comment">
<field property="id" depends="minlength">
<msg name="minlength" key="ID has a minimum length of {0}" resource="false" />
<arg name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>0</var-value>
</var>
</field>
<field property="comment" depends="required,minlength,maxlength">
<msg name="required" key="Comment name is required." resource="false" />
<msg name="minlength" key="Comment has minimum length of {0}" resource="false" />
<arg name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>1</var-value>
</var>
<msg name="maxlength" key="Comment has a maximum length of {0}" resource="false" />
<arg name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>250</var-value>
</var>
</field>
</form>
最小长度
0
最小长度
1.
最大长度
250
您不需要(也不容易)逃避javascript本身。您需要转义HTML。最简单的方法是通过commons lang(首选3.0版)
如果您需要保留其他html标记,那么仅转义javascript将困难得多。你必须寻找onclick、onmouseover等。为此,请看一看
如果您需要支持一些标记格式,通常的做法是允许一些有限的html子集或自定义标记,如或。您不需要(也不容易)避开javascript本身。您需要转义HTML。最简单的方法是通过commons lang(首选3.0版)
如果您需要保留其他html标记,那么仅转义javascript将困难得多。你必须寻找onclick、onmouseover等。为此,请看一看
如果您需要支持某些标记格式,通常的做法是允许一些有限的html子集或自定义标记,如或。如果他想阻止所有标记,则是这样,但情况可能并非如此。如果他们只想阻止脚本标记,最好使用正则表达式匹配脚本标记并替换
字符。是。但我认为一切都会逃脱,因为通常情况就是这样。即使允许使用某些标记,它也是一个特定的子集,或者是自定义标记(如BBcode或Markdown)的form.setComment(StringEscapeUtils.escapeHtml(bean.getComment());'如果他想阻止所有标记标记,这是正确的,但事实可能并非如此。如果他们只想阻止脚本标记,最好使用正则表达式匹配脚本标记并替换
字符。是。但我认为一切都会逃脱,因为通常情况就是这样。即使允许使用某些标记,它也是一个特定的子集,或者是自定义标记(如BBcode或Markdown)的form.setComment(StringEscapeUtils.escapeHtml(bean.getComment());'
<form name="whatif_add_entry_comment">
<field property="id" depends="minlength">
<msg name="minlength" key="ID has a minimum length of {0}" resource="false" />
<arg name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>0</var-value>
</var>
</field>
<field property="comment" depends="required,minlength,maxlength">
<msg name="required" key="Comment name is required." resource="false" />
<msg name="minlength" key="Comment has minimum length of {0}" resource="false" />
<arg name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>1</var-value>
</var>
<msg name="maxlength" key="Comment has a maximum length of {0}" resource="false" />
<arg name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>250</var-value>
</var>
</field>
</form>