[英]is there SQL injection?
我有這種帶有語句查詢的代碼,你能幫我看看有 SQL 注入還是安全代碼?
<%
String aUser = request.getParameter("user");
Conn aPlug = null;
Statement aStatement = null;
ResultSet aResultSet = null;
aPlug = Conn.getPlug("fetchAssetId");
aStatement = Conn.getConnection().createStatement();
aResultSet = aStatement.executeQuery("select pass, file_name from users where user_id = owner and user_name = '" + aUser + "'");
%>
謝謝你
當您允許用戶提供的值直接進入您的查詢時,就會發生注入。 這是用戶提供的值:
String aUser = request.getParameter("user");
它來自 GET 參數,即?user='; DROP TABLE..
?user='; DROP TABLE..
這是它在您的查詢中使用的位:
user_name = '" + aUser + "'
您應該改用PreparedStatement ,如bobby-tables 上所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.