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

存在sql漏洞怎麼辦

發布時間: 2022-04-29 21:48:27

㈠ 網站檢測後顯示sql注入漏洞(盲注),請高手提供解決辦法,謝謝

找專業做網站安全的公司來給你解決,國內最有名的安全公司也就綠盟和sinesafe!

建站一段時間後總能聽得到什麼什麼網站被掛馬,什麼網站被黑,被攻擊。好像入侵掛馬似乎是件很簡單的事情。其實,入侵不簡單,簡單的是你的網站的必要安全措施並未做好。
有條件建議找專業做網站安全的sine安全來做安全維護。

一:掛馬預防措施:

1、建議用戶通過ftp來上傳、維護網頁,盡量不安裝asp的上傳程序。

2、定期對網站進行安全的檢測,具體可以利用網上一些工具,如sinesafe網站掛馬檢測工具!

序,只要可以上傳文件的asp都要進行身份認證!

3、asp程序管理員的用戶名和密碼要有一定復雜性,不能過於簡單,還要注意定期更換。

4、到正規網站下載asp程序,下載後要對其資料庫名稱和存放路徑進行修改,資料庫文件名稱也要有一定復雜性。

5、要盡量保持程序是最新版本。

6、不要在網頁上加註後台管理程序登陸頁面的鏈接。

7、為防止程序有未知漏洞,可以在維護後刪除後台管理程序的登陸頁面,下次維護時再通過ftp上傳即可。

8、要時常備份資料庫等重要文件。

9、日常要多維護,並注意空間中是否有來歷不明的asp文件。記住:一分汗水,換一分安全!

10、一旦發現被入侵,除非自己能識別出所有木馬文件,否則要刪除所有文件。

11、對asp上傳程序的調用一定要進行身份認證,並只允許信任的人使用上傳程序。這其中包括各種新聞發布、商城及論壇程

二:掛馬恢復措施:

1.修改帳號密碼

不管是商業或不是,初始密碼多半都是admin。因此你接到網站程序第一件事情就是「修改帳號密碼」。帳號

密碼就不要在使用以前你習慣的,換點特別的。盡量將字母數字及符號一起。此外密碼最好超過15位。尚若你使用

SQL的話應該使用特別點的帳號密碼,不要在使用什麼什麼admin之類,否則很容易被入侵。

2.創建一個robots.txt

Robots能夠有效的防範利用搜索引擎竊取信息的駭客。

3.修改後台文件

第一步:修改後台里的驗證文件的名稱。

第二步:修改conn.asp,防止非法下載,也可對資料庫加密後在修改conn.asp。

第三步:修改ACESS資料庫名稱,越復雜越好,可以的話將數據所在目錄的換一下。

4.限制登陸後台IP

此方法是最有效的,每位虛擬主機用戶應該都有個功能。你的IP不固定的話就麻煩點每次改一下咯,安全第一嘛。

5.自定義404頁面及自定義傳送ASP錯誤信息

404能夠讓駭客批量查找你的後台一些重要文件及檢查網頁是否存在注入漏洞。

ASP錯誤嘛,可能會向不明來意者傳送對方想要的信息。

6.慎重選擇網站程序

注意一下網站程序是否本身存在漏洞,好壞你我心裡該有把秤。

7.謹慎上傳漏洞

據悉,上傳漏洞往往是最簡單也是最嚴重的,能夠讓黑客或駭客們輕松控制你的網站。

可以禁止上傳或著限制上傳的文件類型。不懂的話可以找專業做網站安全的sinesafe公司。

8. cookie 保護

登陸時盡量不要去訪問其他站點,以防止 cookie 泄密。切記退出時要點退出在關閉所有瀏覽器。

9.目錄許可權

請管理員設置好一些重要的目錄許可權,防止非正常的訪問。如不要給上傳目錄執行腳本許可權及不要給非上傳目錄給於寫入權。

10.自我測試

如今在網上黑客工具一籮筐,不防找一些來測試下你的網站是否OK。

11.例行維護

a.定期備份數據。最好每日備份一次,下載了備份文件後應該及時刪除主機上的備份文件。

b.定期更改資料庫的名字及管理員帳密。

c.借WEB或FTP管理,查看所有目錄體積,最後修改時間以及文件數,檢查是文件是否有異常,以及查看是否有異常的賬號。

網站被掛馬一般都是網站程序存在漏洞或者伺服器安全性能不達標被不法黑客入侵攻擊而掛馬的。

網站被掛馬是普遍存在現象然而也是每一個網站運營者的心腹之患。

您是否因為網站和伺服器天天被入侵掛馬等問題也曾有過想放棄的想法呢,您否也因為不太了解網站技術的問題而耽誤了網站的運營,您是否也因為精心運營的網站反反復復被一些無聊的黑客入侵掛馬感到徬彷且很無耐。有條件建議找專業做網站安全的sine安全來做安全維護。

㈡ 提示有SQL注入漏洞

strSql="select * from user where 用戶名='"&Uname&"' and 密碼='"&Upass&"'"
改成:
strSql="select * from user where 用戶名='"&Replace(Uname,"'", "''")&"' and 密碼='"&Replace(Upass,"'", "''")&"'"
就是說,把單引號替換成2個單引號,就可以避免字元串型的注入漏洞了
如果是int型,就不能用Replace了,而要在拼接sql前判斷是否數字

㈢ asp程序存在SQL注入漏洞如何處理

你都知道有SQL注入了,就在傳值那處理好別人提交的數據,把特殊符號過濾掉 我找了一些函數你看看1、SQL注入漏洞可謂是「千里之堤,潰於蟻穴」,這種漏洞在網上極為普遍,通常是由於程序員對注入不了解,或者程序過濾不嚴格,或者某個參數忘記檢查導致。在這里,我給大家一個函數,代替ASP中的Request函數,可以對一切的SQL注入Say NO,函數如下: Function SafeRequest(ParaName,ParaType)
'--- 傳入參數 ---
'ParaName:參數名稱-字元型
'ParaType:參數類型-數字型(1表示以上參數是數字,0表示以上參數為字元) Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "參數" & ParaName & "必須為數字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function 2、幾年時間,當年的伙計已經成為一個國內知名黑客組織的站長,在他的程序有也有些放黑的代碼,貼出來給朋友們提提供個方便<%
rem 檢查sql字元串中是否有單引號,有則進行轉化
function CheckStr(str)
dim tstr,l,i,ch
l=len(str)
for i=1 to l
ch=mid(str,i,1)
if ch="'" then
tstr=tstr+"'"
end if
tstr=tstr+ch
next
CheckStr=tstr
end function
%><%
''--------定義部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
''自定義需要過濾的字串,用 "防" 分隔
Fy_In = "''防;防and防exec防insert防select防delete防update防count防*防%防chr防mid防master防truncate防char防declare防<防>防=防|防-防_"
Fy_Inf = split(Fy_In,"防")
If Request.Form<>"" Then
For Each Fy_Post In Request.FormFor Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert('網長友情提示黑客大俠↓\n\n請不要在參數中包含非法字元嘗試注入攻擊本站,本站做起來很不容易的.俺是菜鳥,好怕怕,放俺一馬吧\n\nQQ:6407443\n\n有話好話,請用QQ和俺聯系');</Script>"Response.Write "非法操作!本站已經給大俠您做了如下記錄↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作時間:"&Now&"<br>"
Response.Write "操作頁面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:POST<br>"
Response.Write "提交參數:"&Fy_Post&"<br>"
Response.Write "提交數據:"&Request.Form(Fy_Post)
Response.End
End If
Next
Next
End If
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert('網長友情提示黑客大俠↓\n\n請不要在參數中包含非法字元嘗試注入攻擊本站,本站做起來很不容易的.俺是菜鳥,好怕怕,放俺一馬吧\n\nQQ:6407443\n\n有話好話,請用QQ和俺聯系');</Script>"
Response.Write "非法操作!本站已經給大俠您做了如下記錄↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作時間:"&Now&"<br>"
Response.Write "操作頁面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:GET<br>"
Response.Write "提交參數:"&Fy_Get&"<br>"
Response.Write "提交數據:"&Request.QueryString(Fy_Get)
Response.End
End If
Next
Next
End If
%>
<%
dim conn
dim connstr
on error resume next
'DBQ="+server.mappath("admin/admins_news.mdb")+";
'"driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB")
set conn=server.createobject("ADODB.CONNECTION")
connstr="DBQ="+server.mappath("admin/admins_news.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
conn.open connstr
%>3、通用的SQL防注入程序一般的http請求不外乎get 和 post,所以只要我們在文件中過濾所有post或者get請求中的參數信息中非法字元即可,所以我們實現http 請求信息過濾就可以判斷是是否受到SQL注入攻擊。
IIS傳遞給asp.dll的get 請求是是以字元串的形式,,當 傳遞給Request.QueryString數據後,asp解析器會分析Request.QueryString的信息,,然後根據"&",分出各個數組內的數據所以get的攔截如下:
首先我們定義請求中不能包含如下字元:

引用:
--------------------------------------------------------------------------------

|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare

--------------------------------------------------------------------------------

各個字元用"|"隔開,,然後我們判斷的得到的Request.QueryString,具體代碼如下 :

引用:
--------------------------------------------------------------------------------

dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯盟SQL通用防注入系統提示↓nn請不要在參數中包含非法字元嘗試注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If

--------------------------------------------------------------------------------

這樣我們就實現了get請求的注入的攔截,但是我們還要過濾post請求,所以我們還得繼續考慮request.form,這個也是以數組形式存在的,我們只需要再進一次循環判斷即可。代碼如下:

引用:
--------------------------------------------------------------------------------

If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯盟SQL通用防注入系統提示↓nn請不要在參數中包含非法字元嘗試注入!</Script>"
Response.end
end if
next
next
end if 4、以下代碼是網上流行的楓葉防SQL注入通用版的代碼,我在原來的基本上去掉一些內容,使之簡單化.以代碼拷進記事本,另存為asp文件。然後在資料庫連接文件那裡加上包含代碼就行了,例如:
<!-- #include file="文件名" -->

以下是代碼
<%
\'--------定義部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
\'自定義需要過濾的字串,用 "楓" 分隔
Fy_In = "\'楓;楓and楓exec楓insert楓select楓delete楓update楓count楓*楓%楓chr楓mid楓master楓truncate楓char楓declare"
\'----------------------------------
%>

<%
Fy_Inf = split(Fy_In,"楓")
\'--------POST部份------------------
If Request.Form<>"" Then
For Each Fy_Post In Request.Form

For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
Response.write"非法入侵"
Response.End
End If
Next

Next
End If
\'----------------------------------

\'--------GET部份-------------------
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString

For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
Response.write"非法入侵"
Response.End
End If
Next
Next
End If
%>

\'----------代碼結束-------------

以上代碼重點在
Response.write"非法入侵"

你可以修改成通用的:
Response.write"處理url地址有錯誤,請與管理員聯系"
也就是有人想入侵,就會提示"處理url地址有錯誤,請與管理員聯系"

㈣ 我的網站存在SQL注入的漏洞,幫幫我吧!~

使用驗證控制項,嚴格控制輸入的東西,使用正則表達式驗證(這個東西,多學學吧,很游泳的)比如只能輸入數字:[/d];只能輸入字母[a-z]
還有,這個也可以放棄直接在最上層調用sql語句,改為層次分明的架構,在上層就只是傳遞參數,下層才是調用資料庫。
再一方法,調用存儲過程。這個應該是比較安全的。
當然,如果你都用了,那就很安全了

㈤ SQL注入漏洞該怎麼修復啊

防止注入漏洞,是一種設計理念啊。
具體點說,就是應該:
1、將頁面的輸入項拆分成數據項變數,通過函數調用的方式;
2、將變數傳入處理函數,然後處理函數重新整理並判斷變數的合法性;
3、最後將變數在函數內部整理成sql語句執行;
這樣增加了頁面提交數據的判斷,可以比較有效的避免被注入的可能。

㈥ 檢測漏洞有個SQL注入漏洞怎麼修復

對輸入值進行校驗。
因為你這里傳入的參數id是整型,適合你的,最簡單的辦法就是在後台先判斷下id是否為整數,如果是繼續執行,如果不是跳出。
這樣,你的sql 注入漏洞就修復了。

㈦ 目標存在SQL注入漏洞。如何解決

現在很少網站有sql漏洞了,即使有也很難發現,可以用旁註查看,你可以在網站添加防注入代碼,代碼沒有我可以提供,謝謝