回答編集履歴

2

追記

2020/07/10 13:58

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -12,4 +12,42 @@
12
12
 
13
13
 
14
14
 
15
- それはそれとして、書かれているコードが教材のサンプル等であれば、致命的な点がいくつもあるので、これも余程深刻な理由がない限りは教材を変更されることをおすすめします
15
+ それはそれとして、書かれているコードが教材のサンプル等であれば、致命的な点がいくつもあるので、これも余程深刻な理由がない限りは教材を~変更されることをおすすめします
16
+
17
+
18
+
19
+ 具体的には
20
+
21
+ ```PHP
22
+
23
+ //サニタイズと改行をbr要素へ置き換えるコード実装。
24
+
25
+ if (empty($_POST['message'])) {
26
+
27
+ $error_message[] = 'ひと言メッセージを入力してください。';
28
+
29
+ } else {
30
+
31
+ $clean['message'] = htmlspecialchars($_POST['message'], ENT_QUOTES);
32
+
33
+ $clean['message'] = preg_replace('/\r\n|\n|\r/', '<br>', $clean['message']);
34
+
35
+ }
36
+
37
+ ```
38
+
39
+ これは2000年代に量産された間違ったセキュリティ対策の典型です。
40
+
41
+ 今時こんなコードを書いていたら切られても止むを得ないと言わざるを得ない品質です。
42
+
43
+ 参考:[自己流のSQLインジェクション対策は危険](https://blog.tokumaru.org/2013/02/security-measures-of-own-way-are-unsafe.html)
44
+
45
+
46
+
47
+ また、mysqli_系の関数は、WordPressや既存の歴史の長いOSSを触る人以外は新たに勉強するメリットはあんまりありません。(このソースの元サイトの主催者はWordPressを専門にしているので、mysqli系を使っているに過ぎないんだと思われます)
48
+
49
+
50
+
51
+ web上での教材だと[progate](https://prog-8.com/)は、無料コースでもがんばればなんとかなりそうな品質だと思いますよ。
52
+
53
+ (教材を探すのは難しいのですが、教材のソースをteratailで検索してみて、出てくる質問と回答にこの回答の様なコメントがついていればちょっと怪しいかもと考えることをお勧めします)

1

追記

2020/07/10 13:58

投稿

tanat
tanat

スコア18727

test CHANGED
@@ -1,4 +1,4 @@
1
- [多分同じ問題](https://teratail.com/questions/265108)
1
+ [多分同じ問題](https://teratail.com/questions/265108)なので、回答を参照してください
2
2
 
3
3
 
4
4