大家畅所欲言,当jFinal遇到XSS和SQL注入怎么处理

大家畅所欲言,当jFinal遇到XSS和SQL注入怎么处理,第1张

数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原
在显示的时候对非法字符进行转义
如果项目还处在起步阶段,建议使用第二种,直接使用jstl的<c:out>标签即可解决非法字符的问题。当然,对于Javascript还需要自己处理一下,写一个方法,在解析从服务器端获取的数据时执行以下escapeHTML()即可。

附:Javascript方法:

StringprototypeescapeHTML = function () {
return thisreplace(/&/g, ‘&’)replace(/>/g, ‘>’)replace(/</g, ‘<’)replace(/”/g, ‘"’);
}

如果项目已经开发完成了,又不想大批量改动页面的话,可以采用第一种方法,此时需要借助Spring MVC的@InitBinder以及orgapachecommonslangPropertyEditorSupport、orgapachecommonslangStringEscapeUtils

public class StringEscapeEditor extends PropertyEditorSupport {
private boolean escapeHTML;
private boolean escapeJavaScript;
private boolean escapeSQL;

public StringEscapeEditor() { super(); }
public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {
super();
thisescapeHTML = escapeHTML;
thisescapeJavaScript = escapeJavaScript;
thisescapeSQL = escapeSQL;
}

@Override
public void setAsText(String text) {
if (text == null) {
setValue(null);

下面将这两项写入Maven本地仓库:
添加依赖:
mvn install:install-file -DgroupId=comjfinal -DartifactId=jfina -Dversion=18 -Dpackaging=jar -Dfile=${jfinal_location}\jfinal-18-binjar
添加源文件:
mvn install:install-file -DgroupId=comjfinal -DartifactId=jfina -Dversion=18 -Dpackaging=jar -Dclassifier=sources -Dfile=${jfinal_location}\jfinal-18-bin-with-srcjar
Maven中添加依赖:
<!--添加本地jFinal依赖项-->
<dependency>
<groupId>comjfinal</groupId>
<artifactId>jfinal</artifactId>
<version>18</version>
</dependency>

内存要大,memecache只用到内存
数据量过大只能增加服务器memcache服务器:可以配置分布式缓存
因为memcache一般是只供局域网使用的
工作原理是,其他硬件能用即可
其他解决方案:web服务器使用memcache缓存,然后把数据缓存在memcache服务器上,要特殊配置


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13504194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-20
下一篇 2023-08-20

发表评论

登录后才能评论

评论列表(0条)

保存