• ベストアンサー

不正なリクエストとは何でしょうか。

「不正なリクエストです」と表示されましたが、これは一体何でしょうか。 「不正な」と表示されているので、これは不正アクセスとは違うのでしょうか? 例えば、1ページ目のURLが 「example.com/main?page=1」を 2ページ目を見たいので、 ?page=2 と変えてアクセスしたら 「不正なリクエストです」と表示されて見れない具合です。

noname#246835
noname#246835

質問者が選んだベストアンサー

  • ベストアンサー
  • kzr260v2
  • ベストアンサー率48% (788/1620)
回答No.3

>>第三者がURLの引数名をdeleteにしてアドレスバーから検索した場合、どうなってしまうのでしょうか。 >> >>削除動作が起きてしまうのでしょうか。 >> >>(1) >>○○.com/page?id=500 を >> >>○○.com/page?delete=500 と検索した時 >> >>(2) >>○○.com/page?id=500 を >> >>○○.com/page?id=delete と検索した時です。 >> サーバー上で動作しているプログラムがどのように作られているかによります。私は回答不可能です。 削除したいデータがあり、そのデータの作成者が質問主さんなら、サーバーを管理しているところに相談すべきです。あと一般的に削除に関するルールや、削除申請する手順が公開されていることが多いので、それがないかご確認ください。 サーバー側のプログラムを解析する行為は、おすすめできないどころか、不正アクセス禁止法にふれる可能性があります。やめたほうが無難です。

noname#246835
質問者

お礼

回答ありがとうございました。

noname#246835
質問者

補足

youtubeで消された動画を見たいとおもって youtube.com/watch?v= delete と検索したら、 「この動画は見れません」または、 「問題が発生しました」と表示されました。 これは、削除動作が起こったのでしょうか? (コメント欄が無い所もあったのでそれと関係があったのかなと思いました)

その他の回答 (2)

  • kzr260v2
  • ベストアンサー率48% (788/1620)
回答No.2

今回はURLを変更した際に表示されたメッセージなので、ウェブサーバーが表示しているものになります。 ウェブサーバーは、静的に保存されたHTMLのテキストファイルをそのまま表示させる場合もありますが、今回のような場合はウェブサーバー上にプログラムが動作していて、データベースの内容に応じた動的な表示を行っていると考えられます。 まずは、データベース上にpage=1のデータはあるけれど、page=2のデータが無かった場合です。 他には、「実はpageの他にもパラメーター(引数)があり、それらはそのままにpage部分だけ編集した」とすると、page以外の引数の値と矛盾が生じてエラーとなった可能性が考えられます。 いずれにしても、プログラム側からしたら正しくない要求という意味で、不正なリクエストと表示したと思います。(プログラムの記述内容しだいなので、推測の域を越えません。) ※ もしかしたら質問主さんは、不正アクセス禁止法にふれてしまうことを心配されているのでしょうか。 今回はpageという引数を使われたとのことなので、一般的にはふれる可能性は低いです。ざっくりですが、基本的にふれる可能性があるのは、IDやパスワードに関連したり、セキュリティの穴をついてアクセスしたりすることです。 つまりURLにIDパスワードの引数があれば、それは注意すべきですが、今回はpageなので、まあ、大丈夫だろうと考えます。 以上、参考にならなかったらごめんなさい。

noname#246835
質問者

お礼

とても参考になりました。 回答ありがとうございました。

noname#246835
質問者

補足

第三者がURLの引数名をdeleteにしてアドレスバーから検索した場合、どうなってしまうのでしょうか。 削除動作が起きてしまうのでしょうか。 (1) ○○.com/page?id=500 を ○○.com/page?delete=500 と検索した時 (2) ○○.com/page?id=500 を ○○.com/page?id=delete と検索した時です。

  • FattyBear
  • ベストアンサー率32% (1215/3705)
回答No.1

単純に表記方法が間違っているのでは? 2ページ目のURLがexample.com/main?page=2ではないから。

noname#246835
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • 消された動画やホームページを見る時に

    youtubeで消された動画を見たいと思い込み、 (1) deleteyoutube.com にアクセスしたら、 The content of the page cannot be displayed と表示され、見れませんでした。 一方同じように消された動画を見たい時に、 (2)「youtube.com/watch?v=delete」とアクセスしたら、 「動画が見れません」 スマホからは 「問題が発生しました」と表示されて見れませんでした。 この時、(1)と(2)のパターンで動画は消されてしまったのでしょうか? 一部の動画が見れなくなったのも、このようにアクセスしたのが原因なのでしょうか? また、消されたページを閲覧する時に、 URLの先頭にdeleteを付けてアクセスした時、閲覧出来る代わりに、一部のページも削除されてしまいますか? ※example の部分は yahoo や google okwaveなどです。 例えば、 (3) example.com/page/12345 が見れない時に、 delete/example.com/page/12345 と検索して見れたが、 example.com/page/12345 以外の全てのページが消えた (4) example.com/page?id=5000 が見れない時に、 example.com/page?id=delete と検索した時、 example.com/page?id=5000が見れたが、 ?id=5000 以外の記事が全削除された という(3)(4)のケースもありますか? 自分では便利な裏技だなと思い、質問させていただきました。 プログラミングに詳しい方、回答を宜しくお願いします。

    • ベストアンサー
    • PHP
  • htaccessで静的→動的処理、動的→静的301

    例えば・・・ 以下の処理(【1】と【2】)を.htaccess内で処理したいです。 【1】 http://example.com/1.html ↓ http://example.com/kkk.cgi?mode=main&cno=1 ------------------ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([0-9]+)\.html$ kkk.cgi?mode=main&cno=$1 [L] ------------------ 上記で変換は出来るのですが、これだと静的URLと動的URLで「同じコンテンツが表示(重複ページ扱い=コピーページ扱い)」されます。 やりたいことは、CGIにアクセスすると「301リダイレクトで静的ページを表示する」という仕様にしたいと考えております。尚、パラメータ無しの直接アクセス(kkk.cgi)は、同フォルダのindex.htmlに301リダイレクトできれば最高です。 【2】 http://example.com/kkk.cgi?mode=main&cno=1 ↓301リダイレクト http://example.com/1.html ------------------ RewriteCond %{QUERY_STRING} ^mode=main&cno=(\d+)$ RewriteRule ^kkk\.cgi$ %1\.html? [R=301,L] ------------------ しかし【1】と【2】の処理を同時に行うとループとなります。phpなどを一切使わず、.htaccessの記述だけでこの問題をクリアできる方、何卒ご指導お願いいたします。

  • ドメインに:443を付けるとBad Requestとなる事を回避できませんか?

    現在、以下のようなURLで証明書を取得し、サイトを運営しております。 http://mydomain.example.jp/ https://mydomain.example.jp/ VirtualHostで動かしている関係上、 http://mydomain.example.jp:443/ というリクエストが来ると「Bad Request Error 400」とブラウザに表示されます。 何らかの方法で、これを表示させずに本来のページにリダイレクトするなどの方法はございませんでしょうか? よろしくお願いいたします。 環境:CentOS4.5 Apache2

  • プロキシでキャッシュされる/されないファイル?

    下記について教えていただけますでしょうか。 あるサイトの公開 URL を http://sub.example.com/ とします。 こちらの FTP アドレスは sub-2.domain.com となっていますが、公開URL は http://sub.example.com/ となっております。 FTP で sub-2.example.com にアクセスしたら、index.html と style.css がすでにあります(初期状態とします)。 http://sub.example.com/ と http://sub-2.example.com/ のどちらにアクセスしても、上記 index.html が表示されます。 次に、page.html を作成して、FTP で sub-2.example.com にアップロードしたら、 http://sub.example.com/page.html と http://sub-2.example.com/page.html のどちらにアクセスしても、上記 page.html が表示されました。 そこで、最初にあった index.html と style.css を変更したところ、 http://sub.example.com/ にアクセスしたら、初期状態のままで、反映されていません。 http://sub-2.example.com/ にアクセスすると、変更後の状態になっております。 page.html を変更した場合は、どちらもすぐに変更後の状態がになります。 phpinfo() をそれぞれのドメインで実行したところ、 http://sub.example.com/ では、 HTTP_VIA と HTTP_X_FORWARDED_FOR とが表示されており、プロキシを通っている模様。 (http://sub-2.example.com/ では出ていませんので、通常のアクセス時はプロキシを使用していないと言うことです) 上記の状態はどうやらプロキシのキャッシュが原因の様ですが、もしそうだとしたら、 なぜ元々ある index.html と style.css だけがキャッシュされて、 新たに作成した page.html はキャッシュされないでしょうか。 また、元々ある index.html と style.css も更新後にすぐに反映されるようにする方法はございますでしょうか。 よろしくお願い致します。

  • PHPで一度に複数ページのスクレイピングをしたいのですが、リクエストの

    PHPで一度に複数ページのスクレイピングをしたいのですが、リクエストの仕方がよく分かりません。 初心者的な質問で恐縮ですが 例えば、http://hoge.com というサイトの子ページが http://hoge.com/page_1.html という形式だったとして $url = 'http://hoge.com/page_\d+.html'; このような感じで書いてみましたが、「ページが存在しません」というレスポンスが返ってきてしまいます。 このような場合に子ページの情報まで取得するにはどのようにすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • mod_rewrite の記述について

    .htaccess に、mod_rewrite の記述を書いて、以下のようなことをしたいのですが、 1.http://www.example.com/abc/ の場合 URLはそのままで、内容は /main/abc/以下 (の同名ファイル)を表示 2.http://www.example.com/main/abc/ の場合 URLは http://www.example.com/abc/ になり、内容は/main/abc/を表示 以前教えていただいた以下の記述でできるのですが、ディレクトリが追加されたら、.htaccess にも追加が必要になってしまいます。 どのように実現すればよいでしょうか? ------------------------------------------------------------ RewriteCond %{REQUEST_URI} ^/main/(.*)$ RewriteCond %{HTTP:My_Redirect} !yes RewriteRule ^main/(.+)$ http://example.com/$1 [QSA,R] RewriteCond %{REQUEST_URI} ^/(abc|aaa|bbb|ccc|ddd)/ RequestHeader set My_Redirect yes RewriteRule ^(.*)$ /main/$1 [QSA,L] ------------------------------------------------------------

  • 有料のレンタルサーバを借りたのですが…。

    くわしい方お願いします。 携帯用のサイトを作成したいと思い、アクセス制限を行ないました。 すると、アクセスを許可していないIPアドレスで「http://example.com」にアクセスをすると 「Apache HTTP Server Test Page powered by CentOS」という英語表記 のテスト?ページが表示されてしまうのです。そのときのアドレスは 「http://example.com」です。 「http://example.com/index.html」「http://example.com/test.html」 といったアドレスにアクセスすると、通常の403の画面が表示されます。 レンタルサーバを運営しているところに「トラブルチケット」で質問をしたところ ------------------------------------------------- こちらは弊社のサーバの仕様で このようなルールが記述してあります。 Options -Indexes ErrorDocument 403 /error/noindex.html デフォールトのindexページがない場合はwelcomeページが表示されます。 なお、上記のルールを無効にする権限がございません。 ご了承をお願いします。 ------------------------------------------------------ という回答が返ってきました。 以上のことから アクセス制限をかけると http://example.comにアクセスがあった場合、強制的にhttp://example.com/error/noindex.htmlへリダイレクト。(けれど、アドレスはhttp://example.comのまま) http://example.com/~.htmlにアクセスがあった場合 403の画面を表示 といったぐあいです。 将来、403の画面は、.htaccessをつかいError/403.htmlにリダイレクトさせようと思っていました。 けれど、このままでは、「http://example.com」にアクセスがあった場合だけ、http://example.com/error/noindex.htmlが表示されます。 なんとかして、http://example.com/にアクセスがあった場合 403の画面を表示させることはできないでしょうか?

  • example.com/#/example/

    あるサイトのurlがexample.com/#/example/のように#がurlの間に入っていましたが、あれはどういう仕組みでしょうか。 そのサイトの大まかな動きは下記となります。 (1) まず、example.comにアクセスすると、スプラッシュアニメーションの後ホームが表示されます。urlは変わりません。 (2) ナビボタン(aタグは/example/としてしており、ブラウザのステータスバーにはリンク先がexample.com/example/と表示されている)を押すとexample.com/#/example/が表示されます。なおページ間の移動時もアニメーションがあり、ページのロードを感じさせないシームレスな遷移となっています。 (3) example.com/#/example/を直接url入力すると、トップページのスプラッシュアニメーションが表示された後、アニメーションでexample.com/#/example/ページがシームレスに表示されます。(1)から(2)が自動になった感じ。 (4)example.com/example/と直接url入力すると、スプラッシュアニメーションは表示されず、example.com/example/ページが表示されます。ページ間移動時のアニメーションもありません。この状態でナビボタンを押しても、(2)のようなアニメーションがついたシームレスな移動はせず、毎回ページをロードしている感じです。 サイトの大まかな動きは以上となります。サイトのアニメーションはflashではなく、javascriptを使用していると思いますので、おそらくこれと関係あると思いますが、簡単な仕組みをご教授いただけますと幸甚です。 何卒よろしくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccessでURLの一部を書き換えるには?

    .htaccessでURLの一部を書き換える(抜き取る)方法について、質問致します。 例えば http://example.com/user/ランダムな文字列のディレクトリ/ のような構成になっているものを http://example.com/ランダムな文字列のディレクトリ/ でアクセス出来るようにしたいのですが、調べても書き換えまくっても、どうしても上手く行きません。 解決策そのものだけじゃなく、ヒントや調べ方でも良いので、是非ご教授ください! 現在は下記のように書いています。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/?$ user/$1/ [L] ただ、これだと http://example.com/ランダムな文字列のディレクトリ/ にアクセスするとちゃんと動くのですが、元の http://example.com/user/ランダムな文字列のディレクトリ/ にアクセスしても動いちゃっています。 元のURLにアクセスしたら、新しいURLにリダイレクトされて、そこでは元のURLのデータが表示されて欲しいのですが。。 どなたかご教示のほど、よろしくお願い致します。

  • リファラーが「Direct Request」というのはどういう意味でしょうか

    アクセス解析でリファラーの欄に「Direct Request」というのがあります。 これはどういう意味でしょうか。 アクセス元のページにどうしてURLが無いのでしょうか。

専門家に質問してみよう