首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
JFinal-club 中预防XSS 漏洞的代码在哪
李白一刀
2020-10-15 20:43
哪位老师可以指导下 jfinal 中如何控制 XSS的,
jfinal-club 项目中的 XSS 过滤的代码在哪
项目:
JFinal
3
1
评论区
JFinal
2020-10-16 00:03
在 JsoupFilter 之中,这个类里头有一些过滤的方法,然后在 Share、Project、Feedback 以及 ShareReply、FeedbackReply 这五个 Model 中有使用
XSS 防御有很多方案,如果你的系统用户提交的口子比较少的话在 model 中过滤是比较方便的
如果用户提交数据的口子很多的话,可以扩展一个 MyHttpServletRequest ,用它对底层的 request 进行一次包装,也就是内部持有它:
public class MyHttpServletRequest extends HttpServletRequest {
private HttpServletRequest request ;
public MyHttpServletRequest(HttpServletRequest req) {
this.request = req;
}
在这里覆盖一些方法,进行 XSS 过滤操作
}
然后用一个全局拦截器将之替换:
Controller c = inv.getController();
request = new MyHttpServletRequest(c.getRequest());
c.setHttpServletRequest(request);
inv.invoke();
当然,用 Handler 规范会更方便:
void handle(String target, HttpServletRequest req, ...) {
next.handle(target, new MyHttpServletRequest(req), ...);
}
回复
发送
我要反馈
赞助商
AIGC小站- 强大的工作学习AI助手
禅道 - 专业的项目管理软件
热门反馈
JFinal 社区 feedback 反馈栏目
jfinal模块化开发的best practice是怎么样的
eclipse有没有一个类似idea的黑色主题
jfinal配置错误页面
Render类的render方法为什么会被自动执行?
jfinal做微服务和分布式架构,能否给点好的案例,或者好的方案,现在技术选型上面想做考究。
jfinal_club后台登录地址是什么?
jfinal官网怎么没有搜索功能?
renderJson方法返回页面时,long型数值别截取
jfinal 引擎模块中获取session中的值
扫码入社
XSS 防御有很多方案,如果你的系统用户提交的口子比较少的话在 model 中过滤是比较方便的
如果用户提交数据的口子很多的话,可以扩展一个 MyHttpServletRequest ,用它对底层的 request 进行一次包装,也就是内部持有它:
public class MyHttpServletRequest extends HttpServletRequest {
private HttpServletRequest request ;
public MyHttpServletRequest(HttpServletRequest req) {
this.request = req;
}
在这里覆盖一些方法,进行 XSS 过滤操作
}
然后用一个全局拦截器将之替换:
Controller c = inv.getController();
request = new MyHttpServletRequest(c.getRequest());
c.setHttpServletRequest(request);
inv.invoke();
当然,用 Handler 规范会更方便:
void handle(String target, HttpServletRequest req, ...) {
next.handle(target, new MyHttpServletRequest(req), ...);
}