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

回答編集履歴

2

修正

2020/04/18 08:03

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
  蛇足:
13
- [htmlspecialchars()](https://www.php.net/manual/ja/function.htmlspecialchars.php)は画面出力のみ使います。テキストメール送信もそうですが、DB登録時には使ってはいけません。
14
- SQLインジェクションが可能なコードです。特にユーザーからの入力を受け付けるときは[PDO::prepare → PDOStatement::bindValue → PDOStatement::execute の3ステップでクエリを実行する](https://qiita.com/mpyw/items/b00b72c5c95aac573b71#pdoprepare--pdostatementbindvalue--pdostatementexecute-%E3%81%AE3%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B)ようにしてください。
15
- POST,GETなどは直接参照せず[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)を使いましょう。
16
- メール送信のところも危ない気がするけど・・・[メールヘッダーインジェクション](https://qiita.com/tamura__246/items/bdc149d0c7ce23fcb7df)とか気にした実装を心がけてください。
13
+ - [htmlspecialchars()](https://www.php.net/manual/ja/function.htmlspecialchars.php)は画面出力のみ使います。テキストメール送信もそうですが、DB登録時には使ってはいけません。
14
+ - SQLインジェクションが可能なコードです。特にユーザーからの入力を受け付けるときは[PDO::prepare → PDOStatement::bindValue → PDOStatement::execute の3ステップでクエリを実行する](https://qiita.com/mpyw/items/b00b72c5c95aac573b71#pdoprepare--pdostatementbindvalue--pdostatementexecute-%E3%81%AE3%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B)ようにしてください。
15
+ - POST,GETなどは直接参照せず[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)を使いましょう。
16
+ - メール送信のところもこのままだと危ない気がするけど・・・[メールヘッダーインジェクション](https://qiita.com/tamura__246/items/bdc149d0c7ce23fcb7df)とか気にした実装を心がけてください。

1

修正

2020/04/18 08:03

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -6,4 +6,11 @@
6
6
  分かりやすく言うと「スペルミス」です。
7
7
 
8
8
  ただプログラムは馬鹿正直に書かれた通りに動くのでそういう指定で処理をしにいこうとします。本質的には「スペルミス」というより、「存在しない設定をした」と理解した方が今後の役に立つと思います。
9
- PHPマニュアルもきちんと確認するようにしてください。プログラミング言語はほとんど言語仕様ありきです。
9
+ PHPマニュアルもきちんと確認するようにしてください。プログラミング言語はほとんど言語仕様ありきです。
10
+
11
+
12
+ 蛇足:
13
+ ・[htmlspecialchars()](https://www.php.net/manual/ja/function.htmlspecialchars.php)は画面出力のみ使います。テキストメール送信もそうですが、DB登録時には使ってはいけません。
14
+ ・SQLインジェクションが可能なコードです。特にユーザーからの入力を受け付けるときは[PDO::prepare → PDOStatement::bindValue → PDOStatement::execute の3ステップでクエリを実行する](https://qiita.com/mpyw/items/b00b72c5c95aac573b71#pdoprepare--pdostatementbindvalue--pdostatementexecute-%E3%81%AE3%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B)ようにしてください。
15
+ ・POST,GETなどは直接参照せず[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)を使いましょう。
16
+ ・メール送信のところも危ない気がするけど・・・[メールヘッダーインジェクション](https://qiita.com/tamura__246/items/bdc149d0c7ce23fcb7df)とか気にした実装を心がけてください。