url過濾非法字元
『壹』 url的非法字元有哪些
URL無法顯示某些特殊符號,這個時候就要使用編碼了。編碼的格式為:一個百回分號,後面跟對應答字元的ASCII(16進制)碼值。例如 空格的編碼值是"%20"。(ASCII參考)
URL中的特殊字元
特殊含義 十六進制值
1.+ 表示空格(在 URL 中不能使用空格) %20
2./ 分隔目錄和子目錄 %2F
3.? 分隔實際的 URL 和參數 %3F
4.% 指定特殊字元 %25
5.# 表示書簽 %23
6.& URL 中指定的參數間的分隔符 %26
7. = URL 中指定參數的值 %3D
『貳』 幾種過濾URL和FORM中非法字元的方法
ASP過濾和FORM中非法字元第一種:<%'檢查URL輸入限制非法字元url=LCase(request.querystring())ip=request.ServerVariables( REMOTE_ADDR)pos1=instr(url,%)pos2=instr(url,')pos3=instr(url,;)pos4=instr(url,where)pos5=instr(url,select)pos6=instr(url,chr)pos7=instr(url,/)pos8=Instr(url,and)ifpos1<0orpos2<0orpos3<0orpos4<0orpos5<0orpos6<0orpos7<0orpos8<0thenresponse.Write 你嘗試使用危險字元,系統已經對此做了記錄如下您的IP:&ip&操作時間:&date()& response.End()endif'檢查表單輸入,限制非法字元'使用request.QueryString來索引request的所有資料,作為SQL檢查之用'如出現非法字元則自動停止輸出fori_request=1torequest.form.Countifinstr(request.form(i_request),')<0orinstr(request.form(i_request),;)<0thenResponse.Write <scriptlanguage='javascript'history.back();alert('你嘗試使用危險字元,系統已經對此做了記錄如下您的IP:&ip&操作時間:&date()& ');</script response.End()endifnext%第二種:<%OnErrorResumeNextdimsql_injdata,sql_inj,sql_get,sql_data SQL_injdata='|oxSQL_inj=split(SQL_Injdata,|)'定義過濾字元,可以自己添加,以|分隔''|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare'對post方式過濾IfRequest.Form<ThenForEachSql_PostInRequest.FormForSQL_Data=0ToUbound(SQL_inj)ifinstr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))0ThenResponse.redirectss'出錯時轉向頁面 Response.endendifnextnextendif'對GET方式過濾IfRequest.QueryString<ThenForEachSQL_GetInRequest.QueryStringForSQL_Data=0ToUbound(SQL_inj)ifinstr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))0ThenResponse.redirectss'出錯時轉向頁面 Response.endendifnextNextEndIf%第三種:functioncheckstr(str)'過濾非法字元函數dimtempstrifstr=thenexitfunctiontempstr=replace(str, chr(34),)'tempstr=replace(tempstr, chr(39),)''tempstr=replace(tempstr, chr(60),)'<tempstr=replace(tempstr, chr(62),)'tempstr=replace(tempstr, chr(37),)'%tempstr=replace(tempstr, chr(38),)'&tempstr=replace(tempstr, chr(40),)'(tempstr=replace(tempstr, chr(41),)')tempstr=replace(tempstr, chr(59),)';tempstr=replace(tempstr, chr(43),)'+tempstr=replace(tempstr, chr(45),)'-tempstr=replace(tempstr, chr(91),)'[tempstr=replace(tempstr, chr(93),)']tempstr=replace(tempstr, chr(123),)'{tempstr=replace(tempstr, chr(125),)'}checkstr=tempstrendfunction第四種:'================================================'函數名:IsValidStr'作用:判斷字元串中是否含有非法字元'參數:str----原字元串'返回值:False‚True-----布爾值'================================================PublicFunctionIsValidStr(ByValstr)IsValidStr=(str)ThenExitFunctionIfTrim(str)=‚iForbidStr= and|chr|:|=|%|&|$|#|@|+|-|*|/|/|<||;|‚|^|&Chr(32)&|&Chr(34)&|&Chr(39)&|&Chr(9)ForbidStr=Split(ForbidStr‚|)Fori=0ToUBound(ForbidStr)IfInStr(1‚str‚ForbidStr(i)‚1)0ThenIsValidStr==TrueEndFunctionASP.(Stringpara)//過濾非法字元{intflag=0;flag+=para.indexOf(')+1;flag+=para.indexOf(;)+1;flag+=para.indexOf(1=1)+1;flag+=para.indexOf(|)+1;flag+=para.indexOf(<)+1;flag+=para.indexOf()+1;if(flag!=0){System. out 提交了非法字元!!!);returnfalse;}returntrue;}
『叄』 Dreamweaver 中插入視頻url不能包含非法字元串或空格
路徑錯了吧,可能是你的視頻沒有放到站點里。
『肆』 用java獲取URL路徑時出現非法字元
經常會在瀏覽器的地址欄里看到這樣的字元串%E6%96%87%E6%A1%A3
這就是被編碼後的字元串,下面就討論一下java 的url編碼與解碼問題
java.net.URLDecoder.decode(String s,String enc);
將application/x-www-form-urlencoded字元串轉換成普通字元串。
java.net.URLEncoder.decode(String s,String enc);
將普通字元串轉換成application/x-www-form-urlencoded字元串
代碼示例:
import java.net.URLDecoder;
import java.net.URLEncoder;
public class URLDecoderTest {
public static void main(String[] args) throws Exception {
//將application/x-www-form-urlencoded字元串
//轉換成普通字元串
//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8
String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "gb2312");
System.out.println(keyWord);
//將普通字元串轉換成
//application/x-www-form-urlencoded字元串
//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8
String urlStr = URLEncoder.encode("文檔", "gb2312");
System.out.println(urlStr);
}
}
『伍』 url中含有非法字元是什麼意思
這是聲明這個wml文件是依賴於哪個dtd文件的驗證,你這個文件也就是說你所編寫的wml文件必須符合wml1.1的規范
『陸』 在微網站的後台添加URL後,為什麼點擊頁面顯示的是您輸入的內容含有非法字元add 這一段文字要怎麼操作
通常是程序里限制了「add」這個字元導致的,聯系技術人員解決。
『柒』 非法字元有哪些
|例子:
1、比如在操作系統的文件(夾)命名里,它有自己的一套規則: / * ? : | 等字元內不能出現在名稱里容面。 因此在此規則裡面 字元 / * ? : "<> | 都屬於非法字元。
2、比如在編程語言 例如C# 變數不能出現以數字開頭的名稱,像 0tmp 這個變數名稱就屬於非法的。
3、比如在java語言中,對於變數名稱只能是數字,字母,下劃線,$這幾種組合,其中不能以數字開頭。
非法字元並不是指某個字元是非法的,而是某個字元不能出現在某個定義的規則裡面。
(7)url過濾非法字元擴展閱讀:
URL的參數中一定要避免的非法字元:
在URL中的參數中不能有空格、雙位元組字元(如漢字),否則會破壞URL中參數含義的准確性,成為非法的URL,訪問該URL後會報:Server returned HTTP response code: 505 for URL錯誤!
解決方法(以參數中含有空格為例):
空格的unicode為%20,將參數中的所有空格都替換為%20即可。
參考資料:網路-非法字元