Page 1 sur 1

if then goto? | htmlentities

Posté : 05 janv. 2007, 16:15
par jyer
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

Posté : 05 janv. 2007, 16:17
par ouckileou
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 ?

Posté : 05 janv. 2007, 16:23
par jyer
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?

Posté : 05 janv. 2007, 16:39
par ouckileou
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()

Posté : 05 janv. 2007, 17:31
par fab
et je pense que la fonction que tu cherches est plutot htmlspecialchars() qui convertit uniquement les caractères sensibles :)

Posté : 05 janv. 2007, 18:21
par Invité
ok.
Merci bcp,
jr