Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

urlのアクション部分に"://"があるとトップページにリダイレクトしてしまう問題 #1207

Closed
CUiwamoto opened this issue Jul 5, 2019 · 7 comments
Assignees
Labels
Bug バグ

Comments

@CUiwamoto
Copy link
Contributor

概要

自分のローカル環境にて、通常であれば
http://basertest.localhost:8888/http://
のようなurlが指定された時404が表示されて然るべきですが、トップページに飛んでしまいます。
これはhttpに限ったことではなく、aaaa://でも発生し、://が悪さしているものと思われます。

404となる例
http://basertest.localhost:8888/http://basercms-dev4.localhost:8888
→8Controller が見つかりません。
http://basertest.localhost:8888/http:
→HttpController が見つかりません。(遷移時に:は消える)

404とならない例
http://basertest.localhost:8888/http://http://
http://basertest.localhost:8888/aaaa://

baserCMS version : 4.2.0

TODO

ルーティングで弾けていないもしくはトップにリダイレクトする記述があるのであれば変更し404を表示する。

備考

別途記載する内容があれば書きます。

@ryuring
Copy link
Collaborator

ryuring commented Aug 6, 2019

@CUiwamoto http://localhost/aaaa:// というURLを入力する事自体は可能性として高くないと思います。その手前の段階となる、「違うURLにリダイレクトしてしまう」という事象の再現方法を教えて下さい。

@ryuring ryuring added the Bug バグ label Aug 6, 2019
@CUiwamoto
Copy link
Contributor Author

@ryuring クライエント様によるurl手打ちでのバグチェックの際に発見されたものになります。
通常起こりえないurlでの遷移ですが、クライエント様からのリクエストがあり報告させていただきました。

@ryuring
Copy link
Collaborator

ryuring commented Sep 17, 2019

@CUiwamoto これって先日一緒に調査しましたよね?CakePHPの仕様でしたっけ??

@gondoh
Copy link
Collaborator

gondoh commented Sep 17, 2019

@ryuring @CUiwamoto これみたけど、REQUEST_URI にフルパスが入った場合のBaser/Nerwork/CakeRequest::_url() [Line: 251] が判断おかしいっすね。
http://koseki.hatenablog.com/entry/20120210/phpuri

://がある場合フルパスでRequestがあったととみなしてApp.fullBaseUrlからURIを出そうとしてるけど合致してないんで内部判別のURIがfalseになってトップページへのアクセス判別になる。

トップページにリダイレクトしてしまう問題

リダイレクトではないですよね?これ

CakePHPの仕様でしたっけ??

バグと仕様の曖昧な点ですがCakePHPが動作している箇所ですね。
これを404としたい場合は下記ですかね。

[Line: 254]

- $uri = substr($_SERVER['REQUEST_URI'], strlen(Configure::read('App.fullBaseUrl')));
+ if (strpos($_SERVER['REQUEST_URI'], Configure::read('App.fullBaseUrl')) === 0) {
+   $uri = substr($_SERVER['REQUEST_URI'], strlen(Configure::read('App.fullBaseUrl')));
+ } else {
+   $uri = $_SERVER['REQUEST_URI'];
+ }

@ryuring ryuring assigned gondoh and CUiwamoto and unassigned CUiwamoto and gondoh Sep 17, 2019
@ryuring
Copy link
Collaborator

ryuring commented Sep 17, 2019

@CUiwamoto @gondoh ↑どちらかお願いします

@gondoh
Copy link
Collaborator

gondoh commented Sep 17, 2019

@CUiwamoto よしまかせた

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug バグ
Projects
None yet
Development

No branches or pull requests

3 participants