SELECT name, price FROM product_table WHERE code='A123'
String parameter = ユーザが入力した値; Connection c = データベース接続オブジェクトの取得; Statement st = c.createStatement(); String sql = "SELECT name, price FROM product_table WHERE code='" + parameter + "'"; ResultSet rs = st.executeQuery(sql); // 検索を実行。rsに結果が得られる
Statement st = connection.createStatement(); // SQL文のためのオブジェクトを確保 String sql = "SELECT uid FROM account_table WHERE uid='" + uid + "' AND pw='" + pw + "'" // ユーザ入力を埋め込んでSQL文の文字列を作る ResultSet rs = st.executeQuery(sql); // 検索を実行。rsに結果が得られる if (rs.next()) { // 該当するデータがDB中に存在する // ログインOK }
攻撃入力:' OR 1=1--
SELECT uid FROM account_table WHERE uid='' OR 1=1--' AND pw='任意の文字列'
uid='' 攻撃者が与える文字列…
何らかの式 OR TRUE