簡體   English   中英

有SQL注入嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM