
フォームでのデータの受け渡しで質問があります。
リンクにデータを埋め込んで、GETで次ページにデータを渡すという方法があると思うのですが、本を読んだりしたところ、クロスサイトスクリプティングやSQLインジェクションの攻撃にあう可能性も指摘してあったので、何となく今まではデータの書き込みを行うファイルへのフォームデータの受け渡しは、POSTを使ってやっています。
しかしながら、POSTを使うとコードが複雑になるような気もします。GETを使うのはあまり薦められないことなのでしょうか?それとも、これらの攻撃を決定的に回避できる方法があるものなのでしょうか?
アバウトな質問ですが、よろしくお願いします。
No.4ベストアンサー
- 回答日時:
他の方のおっしゃる通り、POSTも攻撃されます。
以下のことに注意してください。
注意点:ユーザー入力値をそのまま使っていないか?
echo等の出力SQL文へ直接挿入等
解決策:ユーザー入力値は必ずサニタイズして下さい。
PHPの関数なら、HTMLspecialchars(),escapeshellarg()等
注意点:入力のチェックを行っているか?
サニタイズだけでなく、例えば価格がPOSTされる場合は、数値のみです。SQLインジェクションに使われるこれらの文字は不要ですよね。" ' , &| % ? * 他
解決策:正規表現等を使い、本来入力されるべき値をチェックして下さい。
参考URL:http://www.atmarkit.co.jp/fsecurity/rensai/webho …
No.3
- 回答日時:
>GETを使うのはあまり薦められないことなのでしょうか?
GETだろうがPOSTだろうが攻撃されることに変わりはありません。
GETの場合、URLにパラメータが出てきてしまうので、一般人でもURLのパラメータをいじるだけで比較的簡単な攻撃が出来てしまうということです。
例えば日付をパラメータにしている場合、コンピュータが処理出来ない日付や存在しない日付にしたりできますよね?GETではこのようなことがURLをいじるだけで出来てしまうと言うことです。
だからといってPOSTが安全と言うわけではなく、POSTのパラメータも知識があれば簡単に変更できてしまいます。
本当に攻撃しようとしている連中が注目する点は、送られたデータが生のまま、または簡単なチェックで処理されているのか?それともちゃんとしたチェックや変換をしているかどうかです。
なので攻撃に対する対策としては、ユーザが送ると考えられる様々データを想定することが第一歩です。
No.2
- 回答日時:
要はどんな攻撃を受ける可能性があるから、こういう対処をしているというのを自分で分かっていればいいのです。
例えば、< を < とするとか。
参考URL:http://www.ipa.go.jp/security/awareness/vendor/p …
No.1
- 回答日時:
受け取った値をちゃんと処理すれば何も恐れることはありませんよ。
検索系のものはURLをそのまま保存できたりして便利だし、ブラウザの戻るで有効期限切れとか言われることも無いですし、使うべきところではGET使った方がいいと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS GETをPOSTに変更したところ 送信 不能です。 1 2022/04/10 17:31
- PHP a href リンクタグでだけで 送信が できちゃっています。 1 2022/04/18 04:25
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- USBメモリー・SDカード・フラッシュメモリー 銀行が振込データの受け渡しに未だにFDを使っている理由は「FDDがAドライブ固定だから」って本当? 11 2022/06/02 03:53
- ガラケー・PHS 22年前のガラケーの譲渡について 1 2022/07/03 22:27
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- その他(プログラミング・Web制作) 大学のゼミのレポートがムカつきます。 R言語というデータ分析に特化したプログラム言語を用いた授業の課 1 2023/06/29 00:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jspで作った入力フォーム内...
-
PDF出力
-
動的にhtmlテーブルを表示
-
ページに時間制限
-
GETとPOST
-
PHPでSESSIONによる変数の引き継ぎ
-
htmlspecialcharsの挙動について
-
ランキングサイトのスパム登録...
-
ブラウザの戻るボタンで重複登...
-
httpでもログインフォームは暗...
-
リストボックスにテキスト入力...
-
asp.netでのセッションを使用し...
-
ログイン画面から入って、「戻...
-
IFRAME内PHPのセッション変数取...
-
PHP+Mysqlによる会員制サイト
-
cURL関数を使用したphpからのpo...
-
PHP+MySQLからHTMLページを自動...
-
GETのメリットについて
-
Dosブロンプトでtabを出力したい
-
重複を無くしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
POSTで受け渡したものを保存し...
-
cURL関数を使用したphpからのpo...
-
php 入力画面から確認表示画面...
-
htmlspecialcharsについて
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
ログイン画面から入って、「戻...
-
ブラウザの戻るボタンで重複登...
-
「ページネーション」で検索キ...
-
閉じるボタン「×」を制御したい
-
動的にhtmlテーブルを表示
-
PHP+MySQLからHTMLページを自動...
-
ブラウザバックしてもチェック...
-
PHP+MySQLで型の整合について
-
HTMLエスケープ処理とデーター...
-
登録確認メールのリンクURLにメ...
-
PHP スマーティ
-
VBAで重複チェックの仕方を教え...
おすすめ情報