1. 程式人生 > >前後臺互動中特殊字元的處理

前後臺互動中特殊字元的處理

一、特殊字元需要做處理

1. 單引號

    後臺返回的json中包含單引號,可能會引起前端頁面js報錯,可以在前端對單引號進行轉義,或者在後臺進行轉義,再生成json返回到前端。

    後臺根據前端傳遞的資料拼接sql時,單引號會導致sql語句報錯,且不推薦直接使用字串進行sql拼接,可以使用JDBC中的類,通過佔位符傳遞引數,防止sql注入。

    如果sql中有單引號導致sql語句報錯,可以將兩個單引號進行轉義,如:select * from table where column like '''' ;

2. 百分號、下劃線

    前端get請求拼接的url中,如果有百分號,需要對百分號進行轉義,否則後臺將取不到該百分號,可以使用'%25'替換'%',如此,後臺可以根據引數直接獲取到%。

    前端傳遞某個引數的值為%,如果後臺不對它進行處理,直接作為條件進行模糊查詢,將會把資料庫中所有非空的資料查詢出來; 如果引數的值為_,後臺不對它進行處理,直接作為條件進行模糊查詢,會匹配到資料庫中該欄位所有單個字元的資料。

    如果遇到百分號、下劃線作為查詢條件,可以使用/+百分號或下劃線進行轉義,在本項條件後加 escape '/' 即可,如:

    select * from tabl where column like '%/%%' escape '/' ;

    select * from tabl where column like '%/_%' escape '/' ;