(クライアント側ではなく)サーバー側にどんなセキュリティー上の問題がありますか?
<?php
$userhtml = $_POST["userhtml"];
print $userhtml;
?>
スクリプトやActiveXでサーバーに何かコマンドを実行したり、
ファイルにアクセスしたり、phpプログラムの内容を取得したり
することはできるのでしょうか?
教えてください。よろしくお願いいたします。
Ajaxの仕組みを利用すればログファイルの出力ぐらいなら出来るかも・・・ただサイトのディレクトリ構造やファイル名をあらかじめわかっていて、アクセス権の設定などが甘かったらという条件付きですが。
無限にサーバーへのリクエストを繰り返すJavascriptを書かれるってことくらいでしょうか。
これは特にユーザが入力したHTMLを吐く場合でなくてもされる危険性はあるのですが、この場合はRefererが自分のサイトのドメインとなるので多少アクセス制限をかけにくいのかなぁと。
また、同一のドメイン内に、重要な値をhiddenで持たせていて、入力チェックのときに、”Refererが自ドメインのものか”という判定をしている場合にも改竄された値を素通りさせる危険性があります。
まぁRefererの値は任意に生成されうるものなので、もともとそれほど信頼して良いものではないですが。。
少し質問の意図とはずれていたかもしれませんが、少なくともサーバーのコマンドを実行したり、phpプログラムの内容を取得したりといったことはできないと思います。
簡単にはできないということですね。参考になりました。ありがとうございます。
このスクリプトだけではサーバー上のデータに対してのセキュリティ的な問題はないように思います。
ただし、例えばデータをサーバーに保存する為のフォーム等が同ぺージあるいは別ページにある場合、このページを利用してJavaScriptでデータを書き込まれたり、外部のサイトへの攻撃に悪用される可能性はあると思います。
または、このページを利用してサーバーへのリクエストをくり返される可能性があり、他の部分の処理が甘いと偶発的にデータが壊れてしまう場合はあるかと思います。
どちらにしても、そういった可能性を潰すといった意味ではきっちりサニタイジングをしておいた方がよいかと思います。
ありがとうございます。
ありがとうございます。