什么是SQL注入?帶你從零開始認(rèn)識(shí)SQL注入
發(fā)表時(shí)間:2023-07-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]從零開始認(rèn)識(shí)SQL注入 ,什么是SQL注入?sql注入就是本來我只有我能操作數(shù)據(jù)庫(kù),本來只是讓你輸入內(nèi)容就走,而你卻輸入命令,從而在我不知情下操作數(shù)據(jù)庫(kù)SQL注入1.什么是SQL注入看一下下面的案例...
從零開始認(rèn)識(shí)SQL注入 ,什么是SQL注入?sql注入就是本來我只有我能操作數(shù)據(jù)庫(kù),本來只是讓你輸入內(nèi)容就走,而你卻輸入命令,從而在我不知情下操作數(shù)據(jù)庫(kù)
SQL注入
1.什么是SQL注入
sql注入就是本來我只有我能操作數(shù)據(jù)庫(kù),本來只是讓你輸入內(nèi)容就走,而你卻輸入命令,從而在我不知情下操作數(shù)據(jù)庫(kù)
2.漏洞的修復(fù)
動(dòng)態(tài)拼接就是在java中java變量和sql語(yǔ)句混合使用:select * from user where userName=’”+userName+”’ and password = ‘”+password”’
3.參數(shù)化sql使用案例
//建立數(shù)據(jù)連接
conn=ds.getConnection();
//1.設(shè)置prepareStatement帶占位符的sql語(yǔ)句
PreparedStatement ptmt = conn.prepareStatement("select * from user where userName = ? and password = ?");
ptmt.setString(1, "張三"); //2.設(shè)置參數(shù)
ptmt.setString(2, "123456");
rs=ptmt.executeQuery();
while(rs.next()){
System.out.println("登陸成功");
return;
}
System.out.println("登陸失敗");
參數(shù)化特點(diǎn):
1.設(shè)置preparedStatement帶占位符的sql語(yǔ)句
statement執(zhí)行sql語(yǔ)句的方式:
stmt=conn.createStatement();
rs=stmt.executeQuery("select userName from user");
2.設(shè)置參數(shù)
PerparedStatement繼承于Statement,這里主要使用的使他參數(shù)化sql的特性。
轉(zhuǎn):https://blog.csdn.net/qq_30258957/article/details/78145885
加:1.都是用來執(zhí)行SQL的 PreparedStatement extends Statement;
2.Statement適合執(zhí)行靜態(tài)(無(wú)條件)SQL PreparedStatement適合執(zhí)行動(dòng)態(tài)(有條件)SQL;
3.PreparedStatement可以避免注入攻擊;
相關(guān)文章:
一個(gè)自認(rèn)為很安全的PHP防SQL注入 求破解
深入了解SQL注入和預(yù)防措施
相關(guān)視頻:
防御sql注入-PHP實(shí)戰(zhàn)商城開發(fā)視頻教
以上就是什么是SQL注入?帶你從零開始認(rèn)識(shí)SQL注入的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。