0

ログインフォームを作成しました。各ユーザーには、個人用のログイン URL (ユーザーごとに固有の URL) があります。たとえば、一意の UL は次のようになります。

www.my-domain.com/unique-url-for-user

url: のこの部分を取得unique-url-for-userし、MySQL に接続して、unique-url-for-user存在するかどうかを確認します。存在する場合は、ユーザー名とパスワードが正しいかどうかを確認します。取得するためunique-url-for-userに使用する予定です$_SERVER['QUERY_STRING']

質問は:

  1. 悪意のあるユーザーが私の方法を使用して、Web サイトになんらかの損害を与えることはできますか?
  2. たとえば、悪意のあるユーザーが入力www.my-domain.com/xして URL から、すべてのユーザー アカウントをブルート フォースすることはできますか?
  3. $_SERVER['QUERY_STRING'] の代わりに他のものを使用して実際の URL を取得する方法はありますか?

ユーザーが を入力するとwww.my-domain.com/xyz、私は取得xyzし、ユーザーは別の URL を私に与えることはできません。

4

1 に答える 1

0

@AlienWebguyに同意しません。

だからあなたはリクエストから価値を持っています。

DBでこの値を使用する場合は、プリペアドステートメントを使用する必要があります。

ページに表示する場合:HTMLは許可されていません-htmlentitiesを使用し、HTMLは許可されています-すべてのスクリプトを削除し、HTMLとスクリプトは許可されています-現在のユーザーは信頼できるユーザーである必要があります。

ファイルシステムで使用する場合(open_basedirを忘れないでください)、許可されたディレクトリ(realpath)で要求されたファイルを確認し、ファイル名が事前定義されたマスクと一致するようにします。

PS私が間違っている場合は、私を訂正してください。

于 2013-03-20T01:21:55.413 に答える