Actualités
Image pour le titre du contenu
Le tokenizer de PHP est le moteur d'analyse de PHP lui-même. En lui donnant un script PHP, il retourne une longue liste de tokens, qui seront la base de l'exécution de PHP. Que faire de tout cela, sans réinventer APC?

Stan Vassilev vous propose alors de compacter le code en supprimant les commentaires et les espaces inutiles (cela permet de gagner un peu de vitesse, mais rend le tout illisible); d'ajouter des commandes de pré-compilation, comme en C (#IF_DEFINED, qui évitent de traiter les mêmes conditions durant l'exécution), ou encore de détecter les classes et interfaces.
Image pour le titre du contenu
Tout d'abord, un rappel : on peut générer des requêtes SQL dans MySQL, et les exécuter, un peu comme le fait eval() en PHP. Voici un exemple qui vous montre une requête SQL dynamique.

 
 
mysql> set @sql = "select 'bonjour';";
 
Query OK, 0 rows affected (1.27 sec)
 
 
 
mysql> PREPARE insertStmt FROM @sql;
 
Query OK, 0 rows affected (0.92 sec)
 
Statement prepared
 
 
 
mysql> EXECUTE insertStmt;
 
+---------+
 
| bonjour |
 
+---------+
 
| bonjour | 
 
+---------+
 
1 row in set (0.00 sec)
 


Notez bien que cette fonctionnalité peut être dévastatrice en cas d'injection SQL. Les performances ne sont pas exceptionnelles (la compilation SQL peut être assez lente), mais sera sûrement indolore pour une utilisation interactive.

La variable @sql peut être constituée de n'importe quelle source : ici c'est une chaîne littérale, mais cela peut être le contenu d'une table, une liste de table, ou autre résultat d'expression.

C'est à cela que se livre le tutoriel de SiteCrafting : comment faire pour analyser systématiquement une base de données, et repérer toutes les occurrences d'une chaîne? Dans toutes les tables d'une base, et toutes les colonnes de chaque table.

La solution se base sur le rappel ci-dessus : information_schema donne la liste des colonnes d'une base qui peut être une chaîne, et une procédure stockée se charge de produire les commandes SQL pour chercher et remplacer dans chaque cas.
Image pour le titre du contenu
"A cause de l'initialisation classique, il doit être évident pour tout le monde que ni rand() ni mt_rand() ne sont suffisamment aléatoire pour être utilisé dans un contexte cryptographique. Malheureusement, les programmeurs d'applications Web utilisent rand() ou mt_rand() pour créer des mots de passe, des clés d'activation ou des cookies d'auto-identification. Dans certaines situations, il semble que cette approche soit sécuritaire, car il faudrait deviner 32 caractères, mais aussi les valeurs précédentes. Une attaque est donc difficile à mettre en place.

Mais il y a des situations où l'attaque systématique est faisable, voire même inutile."

Une revue des mauvaises pratiques et utilisations des générateurs de nombres aléatoires.
Image pour le titre du contenu
Le Shell, mysqlslap et une procédure stockée sont utilisée dans ce tutoriel de Arnaud pour remplir une table de données aléatoires et préparer des tests de charge.
Image pour le titre du contenu
Roshan B. vous propose 5 solutions classiques de mod_rewrite pour remplacer une URL laide par une autre. De nombreux CMS les demandent, et elles sont si simples à connaître.

1) Remplacer product.php?id=12 par product-12.html
2) Remplacer product.php?id=12 par product/ipod-nano/12.html
3) Rediriger les URL sans www URL vers www.URL
4) Rediriger votresite.com/user.php?username=xyz vers votresite.com/xyz
5) Rediriger un domaine vers un sous-dossier de public_html.
<< Début < precedent 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |  suivant Fin >>

Résultats 1 - 9 sur 7880