URLへの/指定なしでのアクセス方法はあるか?

このQ&Aのポイント
  • URLに/を指定せずにアクセスする方法はあるのか?
  • 後輩がURLに/admin/という文字列が含まれていたらアクセス権限チェックを行うロジックを書いてきたが、/を指定せずにテストファイルにアクセスする方法はあるのか疑問がある。
  • いくつかのパターンを試してみたが、/を抜ける方法が見つからない。存在しない可能性もあるが、確認したい。
回答を見る
  • ベストアンサー

/が含まれるURLに/を指定せずにアクセスする方法は?

例えば http://example.com/admin/test.php というURLに、/を指定せずにアクセスすることは可能でしょうか? 後輩が、URLに/admin/という文字列が含まれていたらアクセス権限チェックを行う、というロジックを書いてきました。 どうにかして/を指定せずにtest.phpにアクセスすることが可能な場合はチェックされないと思うのですが、そういうことは可能でしょうか? http://example.com/admin⁄test.php など、考えられそうな手は試してみたのですが、抜けられるパターンが見つけられません。 そういうパターンは存在しない、と考えても問題ないのでしょうか?

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

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

質問の真意がよく見えないのですが、 これは、/admin/を含まないURLでtest.phpにアクセスできるルートを作りたい ということですか? それとも、後輩が書いたチェックロジックの考え方に抜けがないかどうかを 確認したいということですか? 前者であれば、サーバにApacheを使っているなら、 mod_rewite等を使用して、URL変換すればよいと思いますし、 後者であれば、そのようなURL変換をWebサーバに設定しない限り、 /admin/を含まないパスを使ってtest.phpにアクセスすることは できないと思います。

fumikun2
質問者

補足

後者になります。 要するにadminという文字列の前後に/が付加されていないと、当該チェックは通らないので、例えば%2Fadmin%2Fのように、/を使わないでアクセスする抜け穴が無いかどうかを知りたいのです。

その他の回答 (1)

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

チェックのロジックがどうなっているのか分からないので何とも言えませんが、URLエンコードしてみたらどうですか?

fumikun2
質問者

補足

http://example.com/admin%2ftest.phpのように、/を%2fにするということですよね? 残念ながら、test.phpにアクセスできなくなりました。。。

関連するQ&A

  • .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のデータが表示されて欲しいのですが。。 どなたかご教示のほど、よろしくお願い致します。

  • 指定URL以外からのアクセスを拒否するJavaScriptとして

    指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer;// リンク元のURLを取得 if (ref.indexOf(check) < 0)// refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> とあり、試しているのですが、Google chrome4.1ではきちんと動作(指定のアドレスから移動してきちんと表示される、お気に入りから開くと転送される)するのに、Internet Explore8/Firefox3.5では動作しません(指定のアドレスから移動しても転送されてしまう)。 理由がわからないのでどなたか教えて頂けないでしょうか。 よろしくお願いいたします。

  • Apacheの設定で、拡張子なしのURLをウェブブラウザに打ち込んでもアクセス可能な設定は?

    表題の通りなのですが、 Apacheの設定で、拡張子なしのURLをウェブブラウザに打ち込んでもアクセス可能な設定を、どのように書くか忘れてしまいました。 具体的には、 「http://www.example.com/foo.php」 が本来のURLだとして、 ウェブブラウザで 「http://www.example.com/foo」 とアドレス欄に入力してアクセスしても、 「http://www.example.com/foo.php」にアクセスしたのと同様になる設定が知りたいです。 (注:mod_rewriteではない方法で) 以前知っていたのですが、忘れてしまいました。 確か、1行で書けたような気が・・・。 ご存じの方がいらっしゃいましたら、お教えいただければ幸いです。

  • googleからの、?03DD0000 つきのURLのアクセスを禁止する方法

    ドメインを取得して、ホームページを開設しているんですが、googleに?つきの妙なURLを拾われてしまいました。 http://example.com/?03DD0000 というようなURLです。 表示内容は、http://example.com/と全く同じです。 ?付きURLのアクセスを禁止できる方法があったら教えてください。 現状・分かっていること  ?付きのアクセスは、googleの検索結果からきた人のみです。  googleからのアクセス全てを禁止するのは、できれば避けたいです。  ?03DD0000というファイルも、ディレクトリも存在しません。  ?03DD0000というファイル・ディレクトリをわざと作っても、http://example.com/と同じ内容が表示されます。  トップページには、index.cgiとindex.htmlが置いています。  URLに?が付くのは、なつみかん(アンテナ)の仕様が原因でした。  出所に、?つきURLが出ないように対処してもらいました。  それから3ヶ月たってもgoogleに?つきのURLが残っているようです。  WiseNutに拾われたときには、WiseNut運営元にメールを出してURLを消してもらったのですが、googleにメールを出しても消してもらえませんでした。 よろしくお願いします。

  • .htaccessで動的URLを静的化

    動的URLを静的化したいと考えています。 ネットで調べるとよくあるサンプルは RewriteRule ^/dir/([0-9A-Za-z]+)/([0-9A-Za-z]+)$ /dir/index.php?a=$1&b=$2 という風に「静的なURLにアクセスして、内部ではパラメータ付きのURLでの処理をさせる」 というパターンが多いのですが、私がやりたいのは逆で「動的URLにアクセスがあれば静的URLにリダイレクトをさせる」というものです。 理由は、 ・すでにサイトがある程度できあがっていて、既存のURLもある程度Googleにインデックスされている ・パラメータの組み合わせパターンが色々あるため上記のようなルールで対応できない などです。 そこで http://xxx.com/dir/index.php?a=01&b=02 や http://xxx.com/dir/index.php?b=02&c=03&x=999 といった動的URLを http://xxx.com/dir/a-01/b-02/ http://xxx.com/dir/b-02/c-03/x-999/ RewriteRuleを使ってこのような形で一旦301リダイレクトさせ、これをPHPの内部処理でパラメータ付きURLに戻すことによって既存のロジックを生かしたままURLを静的化できないかと考えています。 RewriteRuleの記述を色々書き換えて試してみたのですが、どうしてもやりたいようなURLの変換ができません。 どのように記述すればよいか、ご教授下さい。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • RSSのURLをチェック

    簡単なRSSリーダーを作っています。 フィードを追加するとき、RSSのURLかどうかをチェックしたいのですがどうすればいいのでしょうか? http://www.example.com/ だとダメ(false)で、 http://www.example.com/rss.xml だとOK(true)になるようにしたいのですが。 現在の環境はPHP4です。

    • ベストアンサー
    • PHP
  • index.htmlにアクセスさせない方法

    もともとトップページがexample.com/index.htmlだったのですが、wordpressを取り込んだことで、example.com(またはindex.php)となりました。 従来の、index.htmlにアクセスされると表示されないため、index.htmlにアクセスしてきた人は、自動的にexample.comの方に飛ばしたいのですが、何かいい方法はありますでしょうか。 ただし、初めのディレクトリのindex.htmlを消してしまうと、表示されなくなってしまいます。.com/一本にしたいのですが、何かいい方法はございますでしょうか。

    • ベストアンサー
    • PHP
  • 自CGIのURLのパス部分を取得する方法

    CGIのURLが http://example.com/test/test.cgi だったとして、自身のURLのパス部分(http://example.com/test/)を出すには どのようにしたらいいでしょうか。 CGIモジュールでURLを取得して 最後の/まで切り取る方法もあるかと思いますが そのURLを取得するのと同じくらい、スマート?に出来ないでしょうか。 アドバイスのほどよろしく御願いします。

    • ベストアンサー
    • Perl
  • [PHP]URLパラメータの受け取り方

    こんにちは。 PHPで下記のことを実装しようとしていますが、なかなかうまく行きません。 http://example.com/aaa というURLにアクセスがあった場合、「aaa」だけを抜き出して処理する、 ということを実装したいのですが、上記アドレスにアクセスするとNotFoundになってしまいます。 上記の場合、「aaaというファイルを探しにいく」という処理がされているためNotFoundになることは分かるのですが、どのようにすればindex.phpでaaaをパラメータとして受け取れるのでしょうか? ※システムの都合上、http://example.com/?id=aaaという風には出来ません。 大変恐縮ですがご教授いただけるとありがたいです。

    • ベストアンサー
    • PHP
  • リダイレクトできません。クエリー文字列を含めたURLはリダイレクトしない?

    .htaccessで http://example.com/index.php?%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBwiki ↓ http://example.com/ にリダイレクトさせようと思っています。 以下をを実行してもうまくいきません。 Redirect permanent /index.php?%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBwiki http://example.com/ 以下の様にするといくのですが Redirect permanent /index.php http://example.com/test.php 上と下の違いはクエリー文字列が含まれていることだとおもいます。 クエリー文字列を含めるとリダイレクトは働かないのでしょうか? 文字列をなんらか形でエスケープする必要があるのでしょうか? javascriptだといくのですが、.htaccessだといきません。 教えてください。宜しくお願いします。