Donc c'est assez étrange expérience que j'ai eu au cours de la dernière heure.
Dire que j'ai une source de données qui est contrôlée par une sélection
$fileName = "../data/".$_POST["file"];
$fh = fopen($fileName);
Il y a un fichier nommé « USA » dans le dossier de données. Lorsque l'option de sélection démarre, jQuery l'envoie à un fichier PHP qui ouvrira le fichier approprié et récupérera le contenu correct du fichier et les placera dans une instruction select différente. Cela ne fonctionne pas (Échec d'ouvrir l'erreur de flux se produit) Mais ce n'est pas la partie étrange. La partie est bizarre si j'utilise un nom absolu plutôt que la poste, comme ...
$fileName = "../data/USA";
$fh = fopen($fileName);
J'ai aussi vérifié que $ _POST [ "file"] était enfait "USA"
Veuillez vérifier que $ _POST ["file"] a l'une des valeurs que vous avez l'intention d'autoriser, et arrêtez le script si ce n'est pas le cas. Le simple fait de le coller dans un répertoire et d'utiliser des fonctions de fichier entraîne une vulnérabilité de sécurité. Imaginez que quelqu'un puisse vous envoyer quelque chose comme ../../system_file_youd_rather_not_make_public comme $ _POST ["file"] value –
déjà fait. Quelle est la partie déroutante! – Michael
Avez-vous essayé var_dump ($ _ POST ["file"]); et ... ce fichier devrait avoir une extension ...? –