我有多个jsp文件,我想在其中做这样的事情以避免XSS。基本上使用JSTL来逃避“价值”。
//change following line to use c:out
<input type="hidden" id="crudProperty1" name="crudProperty1" value="${crud.property1}"></input>
<input type="hidden" id="crudProperty1" name="crudProperty1" value="<c:out value="${crud.property1}"/>"></input>
这是我尝试从终端使用的脚本,对文件夹中的一个文件进行这些更改。
find . -type f -name "*.jsp" | xargs perl -i -p -e 's|" value=("\${.*}"?)|" value="<c:out value=\1/>"|'
这主要是寻找任何.jsp文件,然后循环输出abd替换上面提到的文本。我不太确定出了什么问题,但我没有看到文件有任何变化。任何帮助都将不胜感激。
答案 0 :(得分:2)
您不需要使用perl和xargs,只能使用sed执行此任务:
find . -type f -name "*.jsp" -exec sed -i 's#\(value="\)\(\${[^}]*}\)"#\1<c:out \1\2/>"#g' {} \;