if then goto? | htmlentities

Eléphanteau du PHP | 45 Messages

05 janv. 2007, 16:15

Salut,
Deux petites questions:

ALLER A
J'ai une question extrêmement basique mais j'ai pas réussi à trouver de réponse sur google...
J'aimerai écrire un fonction genre:
if (value==foo)
{
alors aller à http://www.google.com
}
Par quoi remplacer le "aller à"

HTMLENTITIES
J'ai une question un brin moins basique concernant l'utilisation d'un mot de passe. J'suis aller trouver un script pour protéger l'accès à un fichier par mot de passe. J'ai pas mal entendu parlé du cross-scripting et me pose la question suivante concernant ce script (extraits):
<?php
$LOGIN_INFORMATION = array(
  'admin' => 'adminpass'
);
?>
<html>
 <form>
<?php if (USE_USERNAME) echo 'Login:<br /><input type="input" name="access_login" /><br />Password:<br />'; ?>
    <input type="password" name="access_password" /><p></p><input type="submit" name="Submit" value="Submit" />
  </form>
</html>
<?php
if (isset($_POST['access_password'])) {
  $login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
  $pass = $_POST['access_password'];
Ces deux dernières lignes qui définissent les variables ne devraient-elle pas être protégées par un htmlentities?
if (isset($_POST['access_password'])) {
  $login = isset(htmlentities($_POST['access_login'])) ? htmlentities($_POST['access_login']) : '';
  $pass = htmlentites($_POST['access_password']);
Si non, pourquoi pas?

Merci bcp,
jr

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 janv. 2007, 16:17

Ce que tu veux faire en premier s'appelle une redirection. En cherchant ce mot dans le forum tu finiras bien par trouver la fonction associée.

Pour ta deuxième question :
eest-ce que tu as regardé la doc de htmlentities() ?
Peux-tu nous dire ce que tu as compris de cette fonction ?

Eléphanteau du PHP | 45 Messages

05 janv. 2007, 16:23

Merci pour tes réponses. C'est sûr que avec le terme technique c'est nettement plus simple.
Pour moi, htmlentities traite les données entrées comme du code html afin d'éviter que de vilains petits pirates n'introduisent du javascript dans le formulaire et parviennent à se faire envoyer des éléments permettant de hacker notre site. D'où ma question: si on ne "htmlentitit" pas les entrées de login et de mot de passe, qq de mal intentionné ne pourra-t-il pas introduire du js dans mon code et y foutre la merde?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 janv. 2007, 16:39

Ce n'est pas vraiment ça :
htmlentities -- Convertit tous les caractères éligibles en entités HTML
c'est à dire que ça transforme un 'è' en

Code : Tout sélectionner

&egrave;
Ceci pour que ce soit affiché correctement dans le navigateur.

Donc si tu fais ça, quelqu'un qui aura pour login "clément" ne pourra pas se connecter si tu transformes dans ton test.

SI quelqu'un introduit du Javascript, il ne sera pas exécuté. Il faudrait protéger du code destiné à de l'affichage par contre.

Ou pareil, du code inséré dans une requête SQL, grâce à http://fr3.php.net/manual/fr/function.m ... string.php()

ViPHP
fab
ViPHP | 2657 Messages

05 janv. 2007, 17:31

et je pense que la fonction que tu cherches est plutot htmlspecialchars() qui convertit uniquement les caractères sensibles :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

05 janv. 2007, 18:21

ok.
Merci bcp,
jr