[PHP] [débutant] strlen() et chaîne de caractères particulière

strlen() et chaîne de caractères particulière [PHP] [débutant] - PHP - Programmation

Marsh Posté le 17-06-2016 à 17:50:21    

Ami(e)s du PHP je vous salue! :hello:  
 
En décortiquant du code PHP malicieux je suis tombé sur quelque chose que je ne comprends pas. Je précise que j'ai quelque connaissances en programmation mais je ne maîtrise pas du tout le language dont il est question.
 
Soit le code

Code :
  1. <?php
  2. echo strlen('#!/');
  3. ?>


Si j'exécute ça sur http://sandbox.onlinephpfunctions.com/ ça me sort '3' comme je m'y attends. Par contre si j'utilise http://phpfiddle.org/ ça donne '0'.  
 
Même phénomène avec un substr(), ceci

Code :
  1. <?php
  2. echo substr('abcde#!/12345', 3, 6);
  3. ?>


donne respectivement 'de#!/1' ou alors 'de1234'.
 
 :??:  :??:  
 
Lequel des deux sites a raison? La chaîne '#!/' a-t-elle une signification particulière en PHP?
 
edit: Est-ce que je dois rajouter [PHP] moi-même dans le titre du sujet ou pas?

Message cité 1 fois
Message édité par rat de combat le 17-06-2016 à 19:20:21
Reply

Marsh Posté le 17-06-2016 à 17:50:21   

Reply

Marsh Posté le 23-06-2016 à 16:27:07    

rat de combat a écrit :

Lequel des deux sites a raison? La chaîne '#!/' a-t-elle une signification particulière en PHP?


Le premier et non, pas que je sache, par contre "#!" est un shebang qui a une signification particulière dans les shell unix, selon ce qu'il permet et la manière dont il exécute son code, il est possible que phpfiddle enlève simplement tous les shebangs qu'il trouve des données qui lui dont envoyées, ce qui explique la disparition de ces chaînes là bas.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-06-2016 à 19:16:06    

Merci pour la réponse. Si je comprends bien on peut considérer que c'est un bug dans phpfiddle? Effectivement #! c'est un shebang, peut-être c'est une sécurité de phpfiddle qui fonctionne mal?

Reply

Marsh Posté le 24-06-2016 à 21:40:50    

rat de combat a écrit :

Merci pour la réponse. Si je comprends bien on peut considérer que c'est un bug dans phpfiddle? Effectivement #! c'est un shebang, peut-être c'est une sécurité de phpfiddle qui fonctionne mal?


Peut-être, ou peut-être que c'est exactement ce qu'ils veulent faire, je ne connais pas leur architecture. C'est clairement pas idéal d'un point de vue utilisateur, mais bon.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-06-2016 à 23:53:11    

Je viens d'envoyer un message à phpfiddle pour leur signaler ça, je vous tiens au courant si je reçois une réponse. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed