html腳本注入
⑴ java怎樣過濾危險字元,該怎麼解決
就WEB應用來說,所謂危險的字元一般就是兩種
一個是sql注入,一個是HTML語法注入
SQL注入主流的框架都可以搞定,JDBC永遠都使用preparedstatement就可以防止所有的sql注入,關鍵是用戶輸入都要通過佔位符往裡放,就自動的替換掉了特殊字元了。hibernate等orm框架都會搞定這個問題
HTML語法注入是指用戶輸入的html代碼回顯出來,這樣如果不轉義就可以破壞頁面的結構或者注入腳本。所以現在的網站都不允許用戶直接輸入html代碼了,現在都是一些UBB標簽來完成一些效果。HTML主要最好的解決辦法是在回顯的時候進行轉義,所有的MVC框架或者展示層框架都有HTML轉義的支持,包括struts,spring,volicty等,注意觀察他們用於顯示的標簽
⑵ 後綴為html 怎麼sql注入
html是靜態文件,是沒有辦法放入後端語言和sql語句,所以根本沒有辦法sql注入。
還有什麼不懂可以追問。
⑶ 如何防止代碼注入攻擊在php
一,HTML防注入。
一般的html注入都是在字元串中加入了html標簽,用下JAVA代碼可以去掉這部分代碼。
代碼如下,自己封裝成方法即可。
String msge = "asdasdasdasd <div id=\"f\">asdfsdf";
System.out.println(msge);
msge = msge.replace("&", "&");
msge = msge.replace("<", "<");
msge = msge.replace(" ", " ");
msge = msge.replace(">", ">");
msge = msge.replace("\"", """);
msge = msge.replace("'", "&qpos;");
System.out.println(msge);
二、防SQL注入
最簡單最容易的是限制用戶輸入。
簡單點的就是不允許用戶輸入單引號 和 --,因為單引號號--在SQL中都是影響執行的。
但SQL注入是多方面的,防止的方法也有很多種。
1、地址欄禁止特殊字元防SQL注入
把特殊字元(如and、or、'、")都禁止提交就可以防止注入了。
2、php過濾html字元串,防止SQL注入
批量過濾post,get敏感數據
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
數據過濾函數
function stripslashes_array(&$array) {
while(list($key,$var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || ''.intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
3、替換HTML尾標簽
function lib_replace_end_tag($str)
{
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace( '/', "", $str);
$str = str_replace("\\", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("css","'",$str);
$str=str_replace("CSS","'",$str);
return $str;
}
三、專業的事情交給專業的工具去做。
安裝安全軟體。例如,在伺服器中安裝「伺服器安全狗」,可以設置防注入,防攻擊的設置,只要設置好安全規則,就可以屏蔽大多數攻擊入侵。
⑷ 涓轟粈涔堢櫥闄嗚緭鍏ユ嗚丠TML璇鍙ユ敞鍏ラ獙璇
鍦╤tml欏甸潰涓鍔犲叆楠岃瘉鍙浠ュ噺灝戣鋒眰鏈嶅姟鍣ㄧ殑嬈℃暟錛屽噺灝忔湇鍔″櫒鍘嬪姏錛屽睘浜庝竴縐嶄紭鍖栫殑鏂瑰紡銆
姣斿傜櫥褰曟椂杈撳叆鐢ㄦ埛鍚嶅拰瀵嗙爜錛岄兘涓嶈緭鍏ユ椂涔熺洿鎺ユ彁浜ょ殑璇濊偗瀹氭槸鐧誨綍涓嶄簡鐨勶紝灞炰簬鏃犳晥鐨勭櫥褰曪紝鎵浠ュ儚榪欐牱鐨勬棤鏁堣鋒眰搴旇ュ湪欏甸潰涓鍋氶獙璇侊紝鍑忓皯璇鋒眰嬈℃暟銆
絳夋墍鏈夐獙璇侀兘閫氳繃鍚庯紝鍍忔牸寮忋佸唴瀹歸暱搴︿粈涔堢殑閮介獙璇侀氳繃鍚庡啀鎻愪氦錛岃繖鏍峰氨鍙璇鋒眰浜嗕竴嬈℃湇鍔″櫒錛屽噺灝戜簡鏃犵敤奼傛儏鐨勬℃暟