teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

見直し

2020/01/04 07:49

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,13 @@
1
+ この回答は、phpからPDO経由で接続する事例になっていますが、
2
+ 他の言語でも同様に扱えるものと思います。
3
+
1
4
  SQL文を外部からくる文字列変数の連結で作ってはいけません。
2
5
  いくつかの条件が重なるとSQLインジェクションなど脆弱性を引き起こします。
3
6
 
7
+ プリペアドステートメントとプレースホルダによるバインディングを駆使して、
8
+ 文字列内の記号が悪さを引き起こさないよう、
9
+ 言語が備える仕組みを最大限利用するべきです。
10
+
4
11
  ```php
5
12
  // $departure = $_POST['departure']; かなにかだとして
6
13
  if (isset($departure)) { // !empty() でもいいかもしれん

1

見直し

2020/01/04 07:49

投稿

退会済みユーザー
answer CHANGED
@@ -2,7 +2,8 @@
2
2
  いくつかの条件が重なるとSQLインジェクションなど脆弱性を引き起こします。
3
3
 
4
4
  ```php
5
+ // $departure = $_POST['departure']; かなにかだとして
5
- if(isset($departure)) {
6
+ if (isset($departure)) { // !empty() でもいいかもしれん
6
7
  $stmt = $pdo->prepare('SELECT id FROM plan WHERE departure = :departure');
7
8
  $stmt->bindValue(':departure', $departure, PDO::PARAM_STR);
8
9
  $stmt->execute();