No.1ベストアンサー
- 回答日時:
SQLインジェクションを学ぶといいかと思います。
PHPの場合、
DELETE FROM Table1 WHERE Column1 = $postData
というSQLを安全ではない方法で発行した場合、
$postDataに『1 OR 1=1』が渡ってくると、下記のSQLが発行されることになります。
DELETE FROM Table1 WHERE Column1 = 1 OR 1=1
これはつまり、Table1内の全レコードが削除対象になります。
Column1の条件が合致せずとも、1=1により条件に合致するレコードになるからです。
同様に、
DELETE FROM Table1 WHERE Column1 = '$postData'
というSQLだったとしても、$postDataに『' OR 1=1 --』が渡ってくると、下記のSQLが発行されることになり、全レコードが削除対象になります。
DELETE FROM Table1 WHERE Column1 = '' OR 1=1 --'
プリペアドステートメントと呼ばれる方法でSQLを発行した時は、
$postDataに『1 OR 1=1』が渡ってくると、下記のSQLが発行されることになります。
DELETE FROM Table1 WHERE Column1 = '1 OR 1=1'
Column1にそんな文字列は存在しないため、削除対象になりません。
最も単調なセキュリティに関わることなので、理由を知らずにコードするものではありません。
この回答へのお礼
お礼日時:2022/02/15 07:14
ご回答くださいまして、ありがとうございました。
難しいことは まだわからないのですが
「SQLインジェクション」ですが、現在著書のP.462に入り
まさに それに突入しています。
手が空き次第 ちゃんとご回答します。
しばらくお待ちください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 実用・教育 大学4年生です。論文を執筆する時期になります。 そこで「直接引用」「間接引用」「要約」が悩みの種です 1 2021/11/06 23:40
- 仕事術・業務効率化 最近会社が経費をケチり始めました。 私としては経費をケチり始めたら会社の将来性が危ない感じてますが、 5 2021/12/17 22:16
- 大学・短大 論文の「引用」についてです。 Q.「間接引用」と「要約」って何が違うのでしょうか。 Q.パラフレーズ 1 2021/11/07 14:12
- 教育・学術・研究 著作権法 3 2022/09/15 16:28
- 図書館情報学 著作権 3 2022/10/10 21:43
- 消費者問題・詐欺 この前詐欺について質問させて頂いた者なのですが たびたびすみません これは詐欺で大丈夫なのですよね、 2 2022/02/03 12:22
- PHP チェックボックスのGETでの受け渡しからMySQLでの照会に際しての配列の扱い方など 4 2021/10/24 02:20
- 会計ソフト・業務用ソフト エクセルの数式で教えてください。 1 2021/12/15 10:55
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- 図書館情報学 著作権の考え方 2 2022/09/15 16:26
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで指数表現しないようにす...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
同一セル内に関数と文字列を同...
-
文字列からタブコードを取り除...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
(エクセル)複数のセルの数値...
-
VBの「As String * 128」とは?
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
Msgboxの×が押されたとき
-
16進数を10進数に簡単に変換す...
-
アクセスで特定の数字以外(複...
-
エクセルで文字列の最大値を抽...
-
VBA2005 16進を2桁で表示したい。
-
VBA テキストボックスの計算
-
aaa.bbb.ccc という、「ドット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Msgboxの×が押されたとき
-
Excelはなんで先頭の0を消すん...
-
16進数を10進数に簡単に変換す...
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
おすすめ情報