Version complète: sur le forum Webmaster Hub : flash& php-sécurité
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Flash et ActionScript
themaster
Je souhaiterais pour des questions de sécurité que flash puisse être en mesure d"interpreter une page .php et d'aviser en conséquence.

L'idée serait que flash vérifie si echo est égal à You must log in. mais bon j'ai testé ça marche pas bien qu'il n'y a pas d'erreur de syntaxe, donc quelque chose ne va pas.

Extrait du code main.php de ma page:

<?php

//
if(isset($_POST['user'])) {
echo 'Welcome ' . $user . '!';
?>
<?php
}
else {
echo '<font face="arial" size="2" color="red">You must log in.</font>';
}
?>


et dans le fichier .swf...... de ma page (main.php), ma suggestion:


loadVariables("main.php", "", "GET");
function echo() {
if (echo == "You must log in.") {
gotoAndStop(4);
}
}
}


Vos suggestions seront très appréciées
iNCiTE Web
"echo" ne serait pas égal à
CODE
<font face="arial" size="2" color="red">You must log in.</font>
en entier ?
captain_torche
Tu ne peux pas vérifier une variable PHP dans un script ActionScript, ils ne sont pas du tout liés.
Ce que tu peux sans doute faire, c'est vérifier si la personne est connectée, et ajouter une variable à ton SWF (du genre "fichier.swf?logged=true"; je vois que tu peux apparement le faire.

Sinon, ton code n'est pas du tout sécurisé; actuellement, tu testes juste la présence d'une variable POST pour afficher ton swf, et c'est très facile d'en ajouter une.
themaster
Arf

Alors avec mysql peut être c'est faisable

Un exemple de code que j'ai chopé sur le net:

$utilisateur_mysql = mysql_connect ("localhost","login","motdepasse");
mysql_select_db("basededonnée")

//

????? (je ne sais pas quoi mettre)

//

mysql_close();

}
iNCiTE Web
Tu confonds un peu tout, MySQL n'est pas une alternative à PHP, c'est un SGDB, donc base de données et rien à voir avec ton problème.
Tu as essayé la solution de captain_torche ?
captain_torche
Si, effectivement, MySQL semble être la bonne solution pour la gestion d'utilisateurs.
Il te suffit de vérifier que tu as bien une correspondance entre les login/mot de passe entrés, et les login/mot de passe en base.
iNCiTE Web
Pour la gestion d'utilisateurs oui, mais là il demande autre chose à la place de son script PHP et propose un bout de script sans vraiment sa voir je pense.
themaster
Oui je me suis embrouillé c'était pas clair dans mon esprit mais bon je crois que sql serait une solution.Ce dont je ne suis pas sur c'est à quoi resemblerait la syntaxe si par exemple après vérification du log in de l'utilisateur je doit aviser en conséquence dans le .swf

Un simple gotoAndPlay m'irait dans l'absolu...
iNCiTE Web
Et bien comme le dit captain_t, la requête va tester si le login/password est valide, si oui tu appelles le Flash en lui passant le paramètre logged=true ou pas...
titouille
hello !

Objet loadVars
méthode sendAndLoad

retour php sous la forme de paramètres dans l'url :

CODE
<?
$login = isset( $_GET['login'] ) ? $_GET['login'] : "";
$pass = isset( $_GET['pass'] ) ? $_GET['pass'] : "";

// test via la base de données pour savoir si les données sont correctes...
// ...
// exemple de requête :
//
$res = mysql_query( "select count( id ) from users where login='".$login."' and password='".$pass."';" );

// ...
// ...

// renvoi de données vers Flash via LoadVars
//
echo "&login=1&value=test&hello=world";
?>


exemple :

CODE
var lv:LoadVars = new LoadVars();
lv.login = "pseudo";
lv.pass = "mot de passe";
lv.owner = this;
lv.onLoad = function( obj )
{
// récupération des données envoyées depuis php
if( this.login == 1 )
{
this.owner.loginSuccess();
}
else
{
this.owner.loginFailed();
}
}
lv.sendAndLoad( "monScript.php", "GET", lv );

function loginSuccess()
{
trace( 'login success !!!' );
}
function loginFailed()
{
trace( 'login failed...' );
}



J'ai noté tout ça de tête, plus vraiment sur de l'implémentation Flash mais dans les grandes lignes c'est ça, y a qu'a faire quelques recherches sur "LoadVars" et ça devrai aller tout seul wink.gif

Bon courage, a++
eurl
Le but est je pense que des personnes non logés ne puissent pas accéder au swf si j'ai bien compris?

Le mieux, je pense serait de faire un répertoire protégé par .htaccess dans lequel les swf ne peuvent être lancés que par la page après login.

du genre :
.htaccess :
CODE
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic

<limit GET POST>
order deny,allow
deny from all
allow from loginok.php
</Limit>


c'est pas mieux ça?

eurl
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.