当前位置:首页 » 编程语言 » jfinalsqlif

jfinalsqlif

发布时间: 2023-06-10 09:17:41

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

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

附:Javascript方法:

String.prototype.escapeHTML = function () {
return this.replace(/&/g, ‘&’).replace(/>/g, ‘>’).replace(/</g, ‘<’).replace(/”/g, ‘"’);
}

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

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();
this.escapeHTML = escapeHTML;
this.escapeJavaScript = escapeJavaScript;
this.escapeSQL = escapeSQL;
}

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

Ⅱ jfinal怎么取出出sql server中的流文件

public void save(){
/**
* 如果上传时,表单类型为multipart/form-data 需要调用getFile方法
* 摘文档:
* 3.4 getFile 文件上传
* Controller 提供了 getFile 系列方法支持文件上传。
* 特别注意:如果客户端请求为 multipart request(form 表单使用了 enctype="multipart/form-data"),
* 那么必须先调用 getFile 系列方法才 能使 getPara 系列方法正常工作,
* 因为 multipart request 需要通过 getFile 系列方法解析请求体中 的数据,包括参数。
*/
try {
getFile();
}catch (Exception e){
logger.error(e.getLocalizedMessage(), e);
}
/*验证是否重复提交*/
if(!checkFormToken()) return;

BizTips eo=getModel(BizTips.class,"m");
// eo.set(BizTips.COL_CREATETIME, DateTimeKit.getDate());
boolean status = eo.save();
JsonView json=new JsonView();
json.setStatus(status);
json.setMsg(status? OperateType.SAVE_SUCCESS:OperateType.SAVE_FAIL);
renderJson(json);
}

Ⅲ Jfinal 中怎么输出执行的sql语句

以mysql为例子吧,比如现在写了一个sql语句 select* from table 把这个sql语句复制到sqlyong上,执行就ok了 , 还是不懂的话 你先安装一个sql数据库,再安装一个客户端 ,把客户端跟数据库链接上,网络下怎么执行就清楚了。

Ⅳ jfinal中动态sql是一般是怎么使用的

动态sql一般用在存储过程中,可以在存储过程中使用DDL或DML语句,如创建删除操作。 语法:execute immediate 'DDL或DML语句'

Ⅳ pgSql里运行sql语句没错,但在JFinal报错

PostgreSQL的PL/pgSQL语言是支持动态SQL语句的(说execute immediate的是ECPG所支持的)。但是,要记得重要的一点: 是在PL/pgSQL语言中支持。而PL/pgSQL语言一个块结构的语言,它以begin ... end为块的开始与结束标识。这也就是说,要执行动态SQL语句,就必须放到begin ... end块中,而不要想实现一个单独的动态SQL语句。在SQL Server中,倒是可以轻松的实现,我们可以直接执行一个这样的动态SQL:
1execute sp_executesql N'select 1 as val'
而在PostgreSQL中,就不要有此想法了。当然,SQL Server的这种动态SQL语句的执行方法也有其局限与不便的地方。
在PL/pgSQL中,执行动态SQL的格式如下(摘录自说明文档):
1EXECUTE command-string [ INTO [STRICT] target ] [ USING expression [, ... ] ];
其中,
command-string就是要执行的动态SQL语句(一定要记住:这里是SQL语句,不是PL/pgSQL语句,像raise notice就不能使用);
INTO子句是把SQL查询到的值赋给INTO指定的变量;
USING子句是前面的command-string中替代变量($1, $2, ...)的赋值;
示例:
123456789do $$declarev_c1 integer;v_c2 integer;beginexecute 'select count(*) as c1, count(*) as c2 from (select 1 as idx union select 11 as idx union select 21 as idx) s where idx > $1' into v_c1, v_c2using 10;raise notice '%, %', v_c1, v_c2;

热点内容
安卓系统密码忘了怎么办 发布:2025-02-13 21:49:28 浏览:971
找回密码发送信息是什么意思 发布:2025-02-13 21:49:26 浏览:639
织梦通用源码 发布:2025-02-13 21:48:41 浏览:438
pid算法调速 发布:2025-02-13 21:20:31 浏览:686
脚本中new 发布:2025-02-13 21:00:11 浏览:741
什么配置的笔记本电脑能玩神武 发布:2025-02-13 20:54:40 浏览:179
挑选云服务器需要注意什么 发布:2025-02-13 20:53:31 浏览:98
加密滴胶卡 发布:2025-02-13 20:30:48 浏览:275
javalogin 发布:2025-02-13 20:25:48 浏览:427
智联招聘无法上传照片 发布:2025-02-13 20:16:03 浏览:529