Sziasztok,
Talalkoztam egy érdekes problémával:
Azure-ben ubuntu + nginx + php-fpm alatt fut egy web app. Ha direktben futtatod a scriptet (..../index.php) akkor működik ahogy kell, azonban ha átírom a .php kiterjesztést .PHP-re vagy .Php-re akkor fogja és letölti az index.php file-t.
Ez elég gáz!
Találkoztatok már ilyennnel? Illetve mit es hogyan kellene beállítani, hogy a fenti ne történjen meg?
Helyreigazitas:
A fenti peldaban az URL-re gondoltam.
Tehat:
file neve: index.php
URL: https://valami.domain/index.php -> ez megy rendesen
URL: https://valami.domain/index.PHP -> ebben az esetben letoltodik az index.php file ahelyett hogy vegrehajtodna
A filerendszeren nincs "index.PHP" file!
- 1551 megtekintés
Hozzászólások
pontosan hogy dobod át a php-fpm -nek a dolgokat? mert ha "~* \.php$"-vel, akkor az nem case sensitive. ha a csillagot elhagyod, akkor lesz case sensitive.
- A hozzászóláshoz be kell jelentkezni
holnap reggel bemasolom a config ide vonatkozo reszet... egyebkent koszonom!
---------------------------------------------
Support Slackware: https://paypal.me/volkerdi
- A hozzászóláshoz be kell jelentkezni
Nyilván látni kellene a configot, de gondolom van egy ilyen sorod valahol:
location ~ \.php(/|$) {
A problémát itt a ~ okozza, ami kis és nagybetű különbséget figyelembe veszi.
Lásd a dokumentációt:
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
TLDR: ~ helyett ~*, ami case insensitive.
Btw, az jó kérdés, hogy ez gáz-e. Az URL nem case insensitive, miért lenne az URL matching alapból az? A fájlnév sem számít annak.
- A hozzászóláshoz be kell jelentkezni
Koszonom!
Ami pedig a case insensitivity-t illeti, ha index.php-t atdobja PHP-FPM-nek akkor dobja at az index.PHP-t is.
Annyit szeretnek elrni, hogy a vegfelhasznalo ne tudja a php file-t letolteni.
---------------------------------------------
Support Slackware: https://paypal.me/volkerdi
- A hozzászóláshoz be kell jelentkezni
"azonban ha átírom a .php kiterjesztést .PHP-re vagy .Php-re"
> Ha kitörlöd a file-t akkor pedig hibát dob. sőt ha ékezetes filenevet használsz azt a web-en még mindig sok helyen nem honorálják. a megoldás egyszerű: ne tedd.
- A hozzászóláshoz be kell jelentkezni
en nem teszem, majd megteszi helyettem a random end-user
Mit gondolsz hogy derult feny erre a problemara? :)
---------------------------------------------
Support Slackware: https://paypal.me/volkerdi
- A hozzászóláshoz be kell jelentkezni
"Ennyi ideje regisztrált felhasználó: 17 év 18 hét"
Inkább az a gáz, hogy ezen időszak alatt nem szoktad meg azt, hogy a *nix rendszer case sensitive-ek
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
dupla post
- A hozzászóláshoz be kell jelentkezni
LOL!
A problema pont az hogy nagyon is megszoktam es epp ez a problema!
A nem letezo "index.PHP" hivasakor valami "file not found" jellegu dolgot varok, nem pedig azt hogy a letezo "index.php"-t letolti nekem a bongeszo
---------------------------------------------
Support Slackware: https://paypal.me/volkerdi
- A hozzászóláshoz be kell jelentkezni
Akkor új értelmezést nyert a kérdésed, magyarul nem egyértelműen fogalmaztál.
"azonban ha átírom a .php kiterjesztést .PHP-re vagy .Php-re akkor fogja és letölti az index.php file-t."
Mit írsz át? Böngészőben a kért URL-t, vagy a fájl nevét a szerveren?
- A hozzászóláshoz be kell jelentkezni
Nah, ez nem jött le az eredeti post-ból :)
Vagyis a szerveren index.php -ként éli életét, viszont ha böngészőben átírod az index.php -t index.PHP -ra, letölti?
Ez viszont egy nagyon fura viselkedés, kezdjük az elején:
- filerendszer?
Gyors check: könyvtárban $ cat index.php vs. $ cat index.PHP
- nginx config?
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Történt egyszer, hogy az öcsém fejlesztett valamit Linuxon, és nekem is bele kellett molyolnom valamit, csakhogy nekem akkoriban épp csak Macem volt fejlesztőképes állapotban. Csodálkozva tapasztaltam, hogy a git clone után azonnal módosítottnak jelzett egy csomó file-t. A rejtély nyitja annyi volt, hogy az öcsémnél ilyen file-ok voltak például, hogy "a.jpg, b.jpg, A.jpg, B.jpg", és mivel a Mac alapesetben kis- és nagybetűk között nem tesz különbséget, rögtön már a clone folyamán vígan felülírta az A.jpg-vel az egy nanoszekundummal korábban letöltött a.jpg-t. Persze tudom, a Mac nem hardcore *nix, de ettől még tanulságos volt az eset.
- A hozzászóláshoz be kell jelentkezni
ohh, a kis-nagy betűvel meg symlinkekkel ugyan így meg lehet szivatni a windows-os git-et ;)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Mondjuk kíváncsi lennék, milyen racionális indok van arra, hogy valami.jpg, Valami.jpg és a valami.JPG mást jelentsen.
- A hozzászóláshoz be kell jelentkezni
Én meg arra lennék kíváncsi, hogy milyen racionális indok van arra, hogy egyes programok .Jpg meg .JPG végű fájlokat generáljanak... mert épeszű felhasználó tuti nem gépel be magától ilyen fájlneveket, ezeket fostos szoftverek generálják.
- A hozzászóláshoz be kell jelentkezni