當前位置:首頁 » 編程語言 » 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;

熱點內容
php房產網 發布:2025-02-13 18:18:06 瀏覽:85
源碼資源吧 發布:2025-02-13 18:14:39 瀏覽:79
java培訓價錢 發布:2025-02-13 17:59:33 瀏覽:974
c語言中變數類型 發布:2025-02-13 17:52:20 瀏覽:258
ftp導出報錯 發布:2025-02-13 17:41:20 瀏覽:997
腳本下載教程 發布:2025-02-13 17:39:06 瀏覽:235
解壓密碼re 發布:2025-02-13 17:39:02 瀏覽:558
linuxdump內存 發布:2025-02-13 17:37:30 瀏覽:57
游戲客戶端源碼 發布:2025-02-13 17:37:19 瀏覽:594
win7打開文件夾聲音 發布:2025-02-13 17:35:03 瀏覽:606