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

sql注入驗證碼

發布時間: 2022-03-07 14:37:53

⑴ 通過加密解密數據可以防止sql注入嗎

不是這樣的吧,能夠被sql注入是因為程序員編寫代碼的問題,未作相關的約束等造成的,通過加密解密數據只能是在傳輸的過程中防止信息的泄露、篡改等問題。

⑵ php做的網站,留言板塊mysql資料庫被注入,已經有驗證碼了,但是還是被注入,請問該怎麼辦

字元串型數據(比如姓名、聯系方式)用addslashes函數來過濾,數字類型數據用intval來過濾


比如你要提交的表單姓名為name,聯系方式為tel,郵箱為mail,留言為msg。舉例代碼如下:

<?php

$name=isset($_REQUEST['name'])?addslashes($_REQUEST['name']):'匿名';
$tel=isset($_REQUEST['tel'])?addslashes($_REQUEST['tel']):'匿名';
$mail=isset($_REQUEST['mail'])?addslashes($_REQUEST['mail']):'匿名';
$msg=isset($_REQUEST['msg'])?addslashes($_REQUEST['msg']):'匿名';

?>

然後你再把這四個變數拼接到sql字串裡面就不會被注入了

⑶ 繞過login登陸到網站後台

是'or'='or' 不是雙引號

一般網站登陸用的sql語句
sql="select * from user where username='"&username&"'and pass='"& pass&'"

代入:
sql="select * from user where username=''or'='or''and pass=''or'='or''"
(注意,or前面和=後面都不是

雙引號,而是兩個單引號,查詢語句裡面沒有雙引號,雙引號只是讓裡面的變數變成字元而已,

我們查詢的時候雙引號中的變數就被我們提交的數據所代替),好了,現在整句話的意思是:從數

據庫的user表中查找的用戶名是空(兩個單引號之間沒東西當然是空了:))或者空等於空。廢

話,因為空當然等於空了,所以程序就認為你提交的數據是合法的,於是就放你通過拉and後面

的密碼驗證都不要了。

⑷ ASP英文單詞防SQL注入問題,請教各位

用replace函數和trim
具體代碼如下
<%@language=vbscript codepage=936 %>
<!--#include file="Conn.asp"-->
<!--#include file="../Inc/Config.asp"-->
<!--#include file="inc/md5.asp"-->

<%
dim sql,rs
dim username,password,CheckCode
username=replace(trim(request("username")),"'","")
password=replace(trim(Request("password")),"'","")
CheckCode=replace(trim(Request("CheckCode")),"'","")
if UserName="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名不能為空!</li>"
end if
if Password="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>密碼不能為空!</li>"
end if
if CheckCode="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>驗證碼不能為空!</li>"
end if
if session("CheckCode")="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>你登錄時間過長,請重新返回登錄頁面進行登錄。</li>"
end if
if CheckCode<>CStr(session("CheckCode")) then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>您輸入的確認碼和系統產生的不一致,請重新輸入。</li>"
end if
if FoundErr<>True then
password=md5(password)
set rs=server.createobject("adodb.recordset")
sql="select * from Admin where password='"&password&"' and username='"&username&"'"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名或密碼錯誤!!!</li>"
else
if password<>rs("password") then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名或密碼錯誤!!!</li>"
else
RndPassword=GetRndPassword(16)
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes")+1
rs("RndPassword")=RndPassword
rs.update
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
session("AdminPassword")=rs("Password")
session("RndPassword")=RndPassword
rs.close
set rs=nothing
call CloseConn()
Response.Redirect "default.asp"
end if
end if
rs.close
set rs=nothing
end if
if FoundErr=True then
call WriteErrMsg()
end if
call CloseConn()

'****************************************************
'過程名:WriteErrMsg
'作 用:顯示錯誤提示信息
'參 數:無
'****************************************************
sub WriteErrMsg()
dim strErr
strErr=strErr & "<html><head><title>錯誤信息</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf
strErr=strErr & "<link href='style.css' rel='stylesheet' type='text/css'></head><body>" & vbcrlf
strErr=strErr & "<table cellpadding=2 cellspacing=1 border=0 width=400 class='border' align=center>" & vbcrlf
strErr=strErr & " <tr align='center'><td height='22' class='title'><strong>錯誤信息</strong></td></tr>" & vbcrlf
strErr=strErr & " <tr><td height='100' class='tdbg' valign='top'><b>產生錯誤的可能原因:</b><br>" & errmsg &"</td></tr>" & vbcrlf
strErr=strErr & " <tr align='center'><td class='tdbg'><a href='Login.asp'><< 返回登錄頁面</a></td></tr>" & vbcrlf
strErr=strErr & "</table>" & vbcrlf
strErr=strErr & "</body></html>" & vbcrlf
response.write strErr
end sub

Function GetRndPassword(PasswordLen)
Dim Ran,i,strPassword
strPassword=""
For i=1 To PasswordLen
Randomize
Ran = CInt(Rnd * 2)
Randomize
If Ran = 0 Then
Ran = CInt(Rnd * 25) + 97
strPassword =strPassword & UCase(Chr(Ran))
ElseIf Ran = 1 Then
Ran = CInt(Rnd * 9)
strPassword = strPassword & Ran
ElseIf Ran = 2 Then
Ran = CInt(Rnd * 25) + 97
strPassword =strPassword & Chr(Ran)
End If
Next
GetRndPassword=strPassword
End Function
%>

⑸ ASP源代碼如何防止SQL注入啊,另外如何加密啊

1.最好是使用存儲過程來操作資料庫,而不要直接在程序中構造SQL語句;
2.在表單提交前進行表單驗證.移除可疑字元;
3.使用驗證碼,增加表單提交的繁雜成度;

⑹ sql注入的時候,』or』=』or』和』or』』=』在使用條件上有什麼區別么

當然不用用Or啦~ Or就是兩個條件滿足其中一個條件即可。假如用戶名或者密碼其中有一個輸入正確了,就可以成功登錄。 用and的話,要用戶名和密碼兩個都輸入正確才可以登錄成功。

⑺ thinkphp 從資料庫驗證用戶名和密碼的代碼,能防止sql注入,,,一般咋么寫的啊高分,

能,不要直接寫sql.程序寫的復雜一點
這是LoginAction.class.php文件
<?php
Class LoginAction extends Action{

Public function index(){
$this->display();
}

Public function login(){
if (!IS_POST) halt('頁面不存在');
if(I('code','','md5') != session('verify')){
$this->error('驗證碼錯誤');
}

$username = I('username');
$pwd = I('password','','md5');

$user = M('user')->where(array('username' => $username))->find();

if(!$user || $user['password'] != $pwd){
$this->error('賬號或密碼錯誤');
}

if($user['lock'] ) $this->error('用戶被鎖定');

$data = array(
'id' => $user['id'],
'logintime' => time(),
'loginip' => get_client_ip(),
);
M('user')->save($data);

session(C('USER_AUTH_KEY'),$user['id']);
session('username',$user['username']);
session('logintime',date('Y-m-d H:i:s',$user['logintime']));
session('loginip',$user['loginip']);

if($user['username'] == C('RBAC_SUPERADMIN')){
session(C('ADMIN_AUTH_KEY'), true);
}

import('ORG.Util.RBAC');
RBAC::saveAccessList();

$this->redirect('Admin/Index/index');

}

Public function verify(){
ob_clean();
import('ORG.Util.Image');
Image::buildImageVerify();
}
}
?>

⑻ 用SQL入侵能查詢教務處網站的成績么,請高手指點下啊

sql入侵的話,好像可以利用sql注入獲取管理員許可權。要看網站有沒有注入漏洞了。找找sql注入方面的資料吧,或許有幫助。單純的用sql去查詢是不行的,你根本沒有資料庫的訪問許可權。

⑼ 登錄驗證防除了SQL注入,還有什麼

驗證碼算不算……

⑽ 我是初學者black網站除了使用sql注入還能怎麼獲得帳號密碼。

可以用代碼向對方提交http請求,只要符合http協議就可以。然後你可以不斷的用循環去嘗試密碼所有位數內的所有可能的密碼,驗證碼的話有可以解析驗證碼圖片的工具,可以知道是什麼數字;
然後就不斷提交直到猜到為止