Protection de fichier tel qu'un htaccess en PHP

Posté le ven. 11 février 2011 • Tags : php, code

Faire un système de protection (tel que htaccess) direct dans un fichier PHP :

Au lieu de :

if (!empty($_SERVER["PHP_AUTH_USER"]) &&
$_SERVER["PHP_AUTH_USER"] == "login" &&
$_SERVER["PHP_AUTH_PW"] == "password") {
<?php
// Identifiants stockés dans un fichier de config non versionné (hors du repo)
$config = require __DIR__ . '/auth-config.php'; // ['user' => 'login', 'pass_hash' => password_hash('password', PASSWORD_DEFAULT)]

if (!empty($_SERVER["PHP_AUTH_USER"]) &&
hash_equals($config['user'], $_SERVER["PHP_AUTH_USER"]) &&
password_verify($_SERVER["PHP_AUTH_PW"], $config['pass_hash'])) {
    // code protégé ici
} else {
    header('WWW-Authenticate: Basic realm="Restricted area"');
    header('HTTP/1.0 401 Unauthorized');
    exit('Access Denied');
}

⚠️ À ne pas reproduire : ne jamais coder les identifiants en dur, ils finissent versionnés et exposés dans le repo. Sortez-les dans une config non versionnée et comparez un hash avec hash_equals() / password_verify() ; le == sur un secret est aussi sensible aux attaques par timing.

Lire la suite


jQuery attr() avec onclick par click()

Posté le ven. 7 janvier 2011 • Tags : code, jquery, javascript

Après avoir perdu 2h… J’ai découvert que la méthode attr() de jQuery fonctionne pas avec l’attribut “onclick”…

Edit : Avec jQuery pour modifier le contenu d’un onclick il faut faire .attr(‘onClick’,‘valeur’) ou faire de la façon suivante.

Remplacer donc :

var mavar = 'fonctionAffichage();';
$("#code").attr("onclick","mavar");

Par ce que je conseillais à l’époque… mais qu’il ne faut surtout pas faire :

var mavar = 'fonctionAffichage();';
$("#code").removeAttr('onclick').click(function() { eval(mavar); });

⚠️ Il ne faut pas utiliser eval() : exécuter une chaîne de code, c’est une porte ouverte à l’injection ou au XSS dès que cette chaîne contient la moindre donnée non maîtrisée. On attache une référence de fonction, jamais une chaîne à évaluer, et on oublie au passage l’attribut onclick inline.

Lire la suite


Commande SVN pour ajouter des keywords

Posté le lun. 25 octobre 2010 • Tags : svn

Pour ajouter le numéro de révision ainsi que pas mal d’autres informations dans vos projets il suffit de taper cette commande :

svn propset svn:keywords "Id" index.php

Ce qui permet d’ajouter le keyword “Id” sur le fichier index.php

Pour afficher l’Id dans votre fichier index.php ajouter dans celui-ci :

$Id:$

Une fois le fichier versionné vous obtiendrez :

$Id: ajax\_modif.php 481 2010-10-25 12:02:50Z choiz $

D’autres keywords sont disponibles tel que :

Lire la suite


Impression de commandes entre balise <pre>

Posté le mer. 15 septembre 2010 • Tags : css, html, code

J’ai toujours eu pas mal de soucis lors d’impression de différentes documentations…

J’utilise souvent la balise <pre> pour les lignes de commandes et il n’y a pas de retour à la ligne fait automatiquement pour cela un petit css permet de faire les retours à la ligne lorsque la page est trop grande. :

pre {
    white-space: pre-wrap;
    word-wrap: break-word;
}

Limiter la bande passante sous Mac Os X

Posté le lun. 12 juillet 2010 • Tags : osx

⚠️ Obsolète : ipfw a été retiré de macOS depuis Yosemite (2014), cet article ne fonctionne plus tel quel sur un macOS moderne. Pour limiter la bande passante aujourd’hui, il faut passer par pf/pfctl couplé à dnctl, ou plus simplement utiliser le Network Link Conditioner d’Apple.

Pour limiter la bande passante sous Mac Os X il suffit de créer un tuyau virtuel en console.

Ici on crée un tuyau virtuel de 1Mbit/s.

Lire la suite