當前位置:首頁 » 編程語言 » web防止sql注入
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web防止sql注入

發布時間: 2022-02-03 22:54:50

『壹』 web應用防火牆可以有效防止以下哪些攻擊行為 sql注入攻擊

防火牆對注入和xss實際上都不能從根本上進行防禦.
注入和跨站漏洞雖然應用的原理完全不同,但是有一個共同的特點就是都是管理員對語句的過濾不嚴格造成的.所以想從根本上解決問題的話,就要從過濾語句著手,不要依靠防火牆.

『貳』 產品的web應用採取什麼措施能防止sql注入攻擊

避免SQL注入三大方法
http://jingyan..com/article/64d05a027aa30bde55f73b19.html

『叄』 如何防止sql注入 web.xml

注入攻擊風險: 取決於類型和注射攻擊的嚴重性,同類型的注射劑包括HTML,SQL,XML,LDAP和操作系統命令。 潛在的風險包括: 存儲數據的丟失/被盜。 資料庫損壞(S)。 通過網路釣魚的用戶信息被盜。

『肆』 .net webservice如何防止sql注入

盡量增加過濾,在提交SQL參數時過濾一些非法字元

『伍』 如何測試WEB應用程序防止SQL注入攻擊

WEB應用程序的安全測試,防止SQL注入攻擊,下面舉一些簡單的例子加以解釋。——Inder P Singh。
許多應用程序運用了某一類型的資料庫。測試下的應用程序有一個接受用戶輸入的用戶界面,這些輸入值用來執行下列任務。
給用戶顯示相關的存儲數據。例如,程序通過用戶輸入的登錄信息檢查用戶憑證(許可權),從而只顯示相關的功能和數據。
將用戶輸入的數據存儲到資料庫中。例如,用戶填寫了一張表格並提交,程序立即將之存儲到資料庫中;從而,用戶可以在本次會話和下次會話中獲取這些數據。
一些用戶輸入值可能會被接下來程序將執行的SQL語句運用到,而程序有可能不會正確執行用戶輸入的值。如果是這樣的話,蓄意用戶可以向程序提供非法數據,這些數據接下來被運用到框架中並且用來在資料庫中執行SQL語句。這就是SQL注入。該行為的結果令人鳴起警鍾。
SQL注入可能導致以下結果:
用戶可以以另一用戶的身份登錄到程序,甚至是管理員的身份。
用戶可以看到其他用戶的隱私信息,如其他用戶的簡介細節,交易細節。
用戶可以修改應用程序配置信息以及其他用戶的數據。
用戶可以修改資料庫的結構,甚至是刪除應用資料庫中的表格。
用戶可以控制資料庫伺服器並且按照自己意願隨意執行命令。
因為允許SQL注入的結果是相當嚴重的,所以在應用程序的安全測試階段應對SQL注入進行測試。通過對SQL注入技術有一個總體的概括,讓我們來理解一些SQL注入的實際例子!
重點:SQL注入問題只能在測試環境中測試
若應用程序頁面有登錄功能,程序有可能使用如下所示的動態SQL語句。這條語句本應從用戶表中返回至少一條用戶詳細信息作為結果,當SQL語句中含有輸入的用戶名和密碼時。

SELECT * FROM Users WHERE User_Name = 『」 & strUserName & 「『 AND Password = 『」 & strPassword & 「』;」

如果測試人員輸入John作為用戶名(用戶名文本框),輸入Smith作為密碼(密碼文本框),上述SQL語句就變成:

SELECT * FROM Users WHERE User_Name = 『John』 AND Password = 『Smith』

如果測試人員輸入John』-作為用戶名,不輸入密碼,那麼SQL語句變成:

SELECT * FROM Users WHERE User_Name = 『John』– AND Password = 『』;

我們可以注意到,SQL語句中John後面的部分成為了注釋。如果用戶表中有一些用戶用戶名為「John」,那麼程序能夠允許測試人員以用戶John的身份登錄,這樣,測試人員可以看到用戶John的隱私信息。
如果測試人員不知道任何程序中已存在的用戶該怎麼辦呢?在這種情況下,測試人員可以嘗試相似的用戶名像「admin」,「administrator」,「sysadmin」。如果這些用戶名在資料庫中都不存在,測試人員可以輸入John』 or 『x』=』x作為用戶名,Smith』 or 『x』=』x作為密碼。那麼SQL語句如以下所示:

SELECT * FROM Users WHERE User_Name = 『John』 or 『x』='x』 AND Password = 『Smith』 or 『x』=』x』;

因為『x』=』x』這一條件總是成立的,結果集包含用戶表中所有行。程序允許測試人員以用戶表中第一個用戶的身份登錄進去。
重點:測試人員在嘗試下列SQL注入之前應該請求擁有資料庫管理員或者開發人員許可權以備份有問題的表格。
如果測試人員輸入John』; DROP table users_details;』—作為用戶名,任意值作為密碼,那麼SQL語句如下所示:

SELECT * FROM Users WHERE User_Name = 『John』; DROP table users_details;』 –『 AND Password = 『Smith』;

這條語句將造成表格「users_details」從資料庫中永久刪除。
雖然上述例子說明的是頁面中登錄功能上運用SQL注入技術,但是測試人員應在應用程序中所有接受用戶輸入的頁面運用該技術測試,如搜索頁面,反饋頁面等等。
SQL注入可能出現在運用了SSL的程序中,即使是防火牆也不能防禦SQL注入攻擊。
本文中,我盡量以簡單的形式解釋SQL注入技術。再次強調,SQL注入只能在測試環境中測試,不能再開發環境,生產環境或者其他任何環境下測試。除了手工測試程序是否易受SQL注入攻擊,我們還應該使用web vulnerability scanner(一款掃描工具)來檢查SQL注入。

『陸』 web 怎麼防止sql資料庫的注入

<%
Sub F_Sql()
Dim Q_Post,Q_Get,Q_In,Q_Inf,i
Q_In = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|cast|is_srvrolemember|xp_cmdshell|net|drop"
Q_Inf = Split(Q_In , "|")
If Request.Form <> "" Then
For Each Q_Post In Request.Form
For i = 0 To Ubound(Q_Inf)
If InStr(LCase(Request.Form(Q_Post)) , Q_Inf(i)) <> 0 Then
Response.Write("請不要在參數中包含非法字元嘗試注入")
Response.End()
End If
Next
Next
End If

If Request.QueryString <> "" Then
For Each Q_Get In Request.QueryString
For i = 0 To Ubound(Q_Inf)
If InStr(LCase(Request.QueryString(Q_Get)) , Q_Inf(i)) <> 0 Then
Response.Write("請不要在參數中包含非法字元嘗試注入")
Response.End()
End If
Next
Next
End If

End Sub

F_Sql()
%>

『柒』 web前端怎麼防止代碼注入攻擊

三種方式:

一,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;
}
三、專業的事情交給專業的工具去做。
安裝安全軟體。例如,在伺服器中安裝「伺服器安全狗」,可以設置防注入,防攻擊的設置,只要設置好安全規則,就可以屏蔽大多數攻擊入侵。

『捌』 .net web網站如何防止sql注入

1、操作資料庫時,最好使用參數化
2、實在要拼接sql的時候,對字元串類型,只要把裡面的單引號替換成2個單引號;
其它之類,比如數值類型,在拼接之前,判斷是否數值;比如DateTime,拼接之前判斷是否日期
就不會有問題了
拼接sql有時是不可避免的,所以注意第2點(有時也會在存儲過程里拼接動態sql

『玖』 如何防禦web應用中的sql注入漏洞

建議騰訊電腦管家修復,系統漏洞經常被黑客利用傳播惡意程序(如網頁掛馬),必須及時修復系統漏洞才能有效防止計算機在上網時被黑客入侵,不過如果安裝了安全軟體,並且漏洞介紹看起來不是那麼嚴重的話,可以選擇不修復。
Windows系統漏洞是指操作系統在開發過程中存在的技術缺陷,這些缺陷可能導致其他用戶在未被授權的情況下非法訪問或攻擊計算機系統。因此,系統開發商一般每月都會發布最新的補丁用以修復新發現的漏洞。目前,騰訊電腦管家支持修復Windows操作系統漏洞和部分第三方軟體漏洞。