Firefox 3 ne supporte pas FCKeditor

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Firefox 3 ne supporte pas FCKeditor

Message par MARTEGAU »

Bonjour à toutes et à tous,

sur le site que je suis en train de créer (sur Easyphp), il faut que je place un formulaire avec FCKeditor. Tout se passe bien avec IE7, mais avec Firefox, je ne vois qu'une moitié gauche de mon formulaire !!!(il est coupé en deux dans le sens de la hauteur) :o

Si j'actionne l'option de IETab, alors là mon formulaire paraît en entier. :roll:

Quelqu'un a t-il eu ce problème et où faut-il agir sur Firefox afin que le formulaire paraisse entier dès l'ouverture de la page. :oops:

Merci d'avance pour votre aide

NB : j'utilise Windows XP Pro

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
Avatar de l’utilisateur
Mori
Animal mythique
Messages : 13311
Inscription : 30 avr. 2004, 19:17

Message par Mori »

salut,

a) mets en ligne l'adresse, ou des pages du site, pour que des vérifications de validité soit opérées selon les standards http://www.w3.org/QA/Tools/
b) je déplace dans la bonne section

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.4) Gecko/2008111309 Firefox
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Firefox 3 ne supporte pas FCKeditor

Message par calimo »

MARTEGAU a écrit :Si j'actionne l'option de IETab, alors là mon formulaire paraît en entier. :roll:
Et pour cause, puisque tu l'ouvres avec IE.
Tu dois certainement avoir fait une erreur quelque part, mais c'est très difficile à dire quoi sans le moindre bout de code :-?
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Message par MARTEGAU »

Merci pour vos réponses. Voici le script qui me permet d'éditer du texte :

Code : Tout sélectionner

<!-- Installation de FCKeditor-->
		<?php
			include("../FCKeditor/fckeditor.php");
		?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
       
	   <title>correction des Newsletters</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />	   
		
		
<!--Dans ce script 	:
	1- On appelle une Newsletter
	2- On l'affiche dans le formulaire pour la modifier
	3- On l'enregistre dans la table "Newslettter"
	-->

   <style type="text/css">
   
	form
	{
		position:absolute;
		top:10%;
		left:20%		
	}
	input
	{
		position:absolute;
		color:blue;
		left:45%;
	}
	h2
	{
		position:absolute;
		left:30%;
		/*top:5%;*/
	}
	/*.tableau
	{
		position:absolute;
		left:40%;
		top:20%;
	}*/
   
   	
   </style>
</head>
   
<body>
		
		<!-- Retour page de choix-->
		<a href="choix_news.php" title="Retour page du choix">Return</a>
		
		
<?php
		
		
		//On se connecte à Mysql 
		mysql_connect("localhost","root");
		mysql_select_db("test");
				
		
		//Si on a demandé à modifier une newsletter
		if (isset($_GET['modifier']))
		{
			$retour=mysql_query('SELECT * FROM newsletter WHERE ID=' . $_GET['modifier']);
			$donnees=mysql_fetch_array($retour);
			$titre=stripslashes($donnees['TITRE']);
			$contenu=stripslashes($donnees['CONTENU']);
			$champ_cache=$donnees['ID'];//on rentre la valeur de l'ID pour savoir que c'est une news modifiée
			
		}
?>
		<!--Formulaire de modif-->
		
			<h2>MODIFICATION DES NEWSLETTERS</h2>
			
			<form  method="post" action="choix_news.php"><!--on retourne sur le tableau des choix (choix_news.php)-->
						
			<!--FCKeeditor-->
			<?php
			$oFCKeditor = new FCKeditor('CONTENU');//variable qui s'enregistrera dans la bdd
			$oFCKeditor->Basepath ='/FCKeditor/';
			$oFCKeditor->Value = $contenu;//On affiche le contenu de la variable
			$oFCKeditor->Width = '80%';//largeur du formulaire de saisie
			$oFCKeditor->Height = '500';//hauteur du formulaire de saisie
			$oFCKeditor->Create() ;			
			?>
			
			<p>
			<label>Titre de la Newsletter<input name="TITRE" value="<?php echo $titre; ?>" size="40" tabindex="10"/></label><br/><br/><br/>
			<input type="hidden" name="CACHE" value="<?php echo $champ_cache; ?>"/>
			<input type="submit" value="Enregistrez"/>
			</p>
			</form>
<?php
		//On se déconnecte de Mysql
		mysql_close();
?>			

</body>
</html>
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
teoli2003
Animal mythique
Messages : 7580
Inscription : 13 nov. 2005, 09:23

Message par teoli2003 »

C'est la partie générée qui est intéressante, pas la partie avant l'interpréteur php.

A noter que ça, c'est du code très apprécié par les hacker. Tu balances ton GET à la base de donnée sans avoir contrôlé son type...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

teoli2003 a écrit :A noter que ça, c'est du code très apprécié par les hacker.
Surtout que tu es loggué en root :shock:
Il suffit que $_GET['modifier'] contienne un ; (pour terminer la commande select) puis un drop database, et c'est le drame !
Tu peux même essayer toi-même pour voir : dans le champ "modifier", mets

Code : Tout sélectionner

5; drop database test;
;-) (bien sûr tu as fait une sauvegarde avant !)
teoli2003
Animal mythique
Messages : 7580
Inscription : 13 nov. 2005, 09:23

Message par teoli2003 »

calimo a écrit :
teoli2003 a écrit :A noter que ça, c'est du code très apprécié par les hacker.
Surtout que tu es loggué en root :shock:
Il suffit que $_GET['modifier'] contienne un ; (pour terminer la commande select) puis un drop database, et c'est le drame !
Tu peux même essayer toi-même pour voir : dans le champ "modifier", mets

Code : Tout sélectionner

5; drop database test;
;-) (bien sûr tu as fait une sauvegarde avant !)
C'est à cela que je pensais. A noter que cela ne marche pas avec les très vieilles versions de Mysql.

Mais sans aller si loin (détruire la base), cela peut être utilisé pour faire des INSERT et des UPDATE ;-) Plus discret et plus vicieux.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Message par MARTEGAU »

Bon, vous me faites peur les gars. Quel bout de script faut-il que j'écrive pour protéger mes bases ?

Merci



Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

MARTEGAU a écrit :Bon, vous me faites peur les gars.
C'est le but. Internet est dangereux, et il faut avoir peur !
  1. se logguer comme simple utilisateur avec des droits le plus limités possible (select, et si nécessaire insert/update sont probablement le maximum). Un utilisateur séparé pour les select et un pour les insert/update n'est probablement pas superflu ;
  2. Vérifier les données. Ne fais pas confiance aux utilisateurs, il y en aura toujours un pour tout casser si tu laisse la moindre porte ouverte (sans que ce soit forcément malveillant, mais une erreur est si vite arrivée). Ici, utilise une regex ancrée au début (^) et à la fin ($) pour vérifier le format correct (p.ex "^\d+$"). Dans des champs de texte, c'est plus compliqué. Utilise la fonction mysqli_real_escape_string pour désactiver guillemets et point-virgules pour les transformer en texte inactif. Dans les champs type cases à cocher, utilise switch et assigne la valeur "manuellement" (sans récupérer la valeur envoyée). Etc. ;-)
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Message par MARTEGAU »

Ok merci Calimo.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
Echtelion

Message par Echtelion »

Pour améliorer très légerement ta sécurité, met toujours tes expression WHERE entre guillemets, même pour des entiers. Rajouter des ";" à la fin de chaque requête est aussi une bonne habitude

Exemple dans ton code :

Code : Tout sélectionner

$retour=mysql_query('SELECT * FROM newsletter WHERE ID=' . $_GET['modifier']); 
par :

Code : Tout sélectionner

$retour=mysql_query('SELECT * FROM newsletter WHERE ID="' . $_GET['modifier']+'";'); 
ta requête va se retrouver avec un bon :
SELECT * FROM newsletter WHERE ID="3";
Auparavant :
SELECT * FROM newsletter WHERE ID=3

Si quelqu'un essayait de faire : -> 5; drop database test; <-
La requête donne :
SELECT * FROM newsletter WHERE ID="5; drop database test;";
Dans le pire des cas, tu auras une erreur te disant qu'il a pas put interpréter "5; drop database test;" en tant qu'entier, au mieux il y aura 0 résultat à ta requêtes.
Dans tout les cas, tu évites déjà 95% des attaques par injection sql.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Message par MARTEGAU »

Grand merci Etchelion,

Je vais corriger mes scripts dans ce sens.
:)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Noooon !!!!! :evil:
Echtelion a écrit :par :

Code : Tout sélectionner

$retour=mysql_query('SELECT * FROM newsletter WHERE ID="' . $_GET['modifier']+'";'); 
Il reste une grosse faille dans ce code, car il suffit au client de passer un guillemet pour qu'il puisse à nouveau faire ce qu'il veut. 95% ce n'est pas suffisant.

D'où les précautions (utilisateur à droits limités pour les select) et vérifications précisées plus haut
Puisqu'il faut un bout de code :

Code : Tout sélectionner

$ma_valeur_validee = tout_plein_de_vérifications($_GET['modifier']);
$retour=mysql_query('SELECT * FROM newsletter WHERE ID="' . mysql_real_escape_string($ma_valeur_validee)+'";'); 
:wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.4) Gecko/2008111317 Ubuntu/8.04 (hardy) Firefox/3.0.4
MARTEGAU
Arias
Messages : 16
Inscription : 27 janv. 2007, 08:21

Message par MARTEGAU »

Merci Calimo. Je vais de ce pas re-corriger mes scripts.

Merci à tous.

:oops:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Dealio Toolbar 3.1 Firefox/3.0.4
Au lieu de mettre en joue quelque vague ennemi, mieux vaut attendre un peu qu'on le change en ami.
(G.BRASSENS)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités