人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpでユーザー任意入力のコードを書き出す場合、
(クライアント側ではなく)サーバー側にどんなセキュリティー上の問題がありますか?

<?php
$userhtml = $_POST["userhtml"];
print $userhtml;
?>

スクリプトやActiveXでサーバーに何かコマンドを実行したり、
ファイルにアクセスしたり、phpプログラムの内容を取得したり
することはできるのでしょうか?

教えてください。よろしくお願いいたします。

●質問者: k2017
●カテゴリ:ウェブ制作
✍キーワード:ActiveX PHP print アクセス クライアント
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kazu1107
●30ポイント

Ajaxの仕組みを利用すればログファイルの出力ぐらいなら出来るかも・・・ただサイトのディレクトリ構造やファイル名をあらかじめわかっていて、アクセス権の設定などが甘かったらという条件付きですが。

◎質問者からの返答

ありがとうございます。


2 ● sera_yr
●40ポイント

無限にサーバーへのリクエストを繰り返すJavascriptを書かれるってことくらいでしょうか。

これは特にユーザが入力したHTMLを吐く場合でなくてもされる危険性はあるのですが、この場合はRefererが自分のサイトのドメインとなるので多少アクセス制限をかけにくいのかなぁと。

また、同一のドメイン内に、重要な値をhiddenで持たせていて、入力チェックのときに、”Refererが自ドメインのものか”という判定をしている場合にも改竄された値を素通りさせる危険性があります。

まぁRefererの値は任意に生成されうるものなので、もともとそれほど信頼して良いものではないですが。。

少し質問の意図とはずれていたかもしれませんが、少なくともサーバーのコマンドを実行したり、phpプログラムの内容を取得したりといったことはできないと思います。

◎質問者からの返答

簡単にはできないということですね。参考になりました。ありがとうございます。


3 ● wizemperor
●10ポイント

このスクリプトだけではサーバー上のデータに対してのセキュリティ的な問題はないように思います。

ただし、例えばデータをサーバーに保存する為のフォーム等が同ぺージあるいは別ページにある場合、このページを利用してJavaScriptでデータを書き込まれたり、外部のサイトへの攻撃に悪用される可能性はあると思います。

または、このページを利用してサーバーへのリクエストをくり返される可能性があり、他の部分の処理が甘いと偶発的にデータが壊れてしまう場合はあるかと思います。

どちらにしても、そういった可能性を潰すといった意味ではきっちりサニタイジングをしておいた方がよいかと思います。

http://www.doyouphp.jp/tips/tips_xss.shtml

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ