J'ai une page comme celle-ci. L'utilisateur écrit une URL dans un formulaire et l'envoie. Une fois l'URL envoyée, je connecte cette page avec CURL, recherche une chaîne. S'il trouve la chaîne, il ajoute l'URL dans notre base de données. Sinon, cela donne une erreur à l'utilisateur.PHP: Sécurité lors de l'utilisation de CURL?
Je désinfecte l'URL avec htmlspecialchars() également une regex pour autoriser A-Z, 1-9,:/-. symboles Je nettoie également le contenu récupéré à partir d'un autre site Web avec htmlspecialchars() aussi.
Ma question est, peuvent-ils entrer une URL comme; www.evilwebsite.com/shell.exe ou shell.txt
Est-ce que PHP pourrait l'exécuter, ou simplement rechercher la sortie HTML? Est-ce que c'est sûr ou non, que dois-je faire?
Merci.
Ps. allow_url_fopen est désactivé. C'est pourquoi j'utilise curl.
En fait, la seule chose que je fais avec le contenu récupéré est de faire un balayage regex de base. Par exemple, si le contenu récupéré contient un texte "Hello" n'importe où, il insérera l'URL dans la base de données. Sinon, il va erreur utilisateur comme "Bonjour le texte ne se trouve pas dans cette page." Y at-il des mesures que je devrais prendre pendant la numérisation pour le texte "Bonjour"? – Aristona
@ AnılÜnal: Non, c'est parfaitement sécurisé. Mais vous devriez toujours laisser tomber cette aseptisation inutile, cela pourrait casser certaines URL et causer un déni de service. –
htmlspecialchars() ne vous sauve pas de l'oeil d'eval :-) Je pense que son but était d'empêcher XSS. –