vendredi, 3 mai 2019

Audit web : points à évaluer

Ci-après, les quelques grands points à prendre en considération pour réaliser l'audit d'un site web :

  • Contenu (information, crédibilité, cohérence...)
  • Graphisme (présentation, lisibilité...)
  • Structure (navigation, ergonomie...)
  • Interactivité (formulaires, espaces collaboratifs, newsletters...)
  • Performance
  • Sécurité
  • Accessibilité (dispositifs pour faciliter la lecture pour les personnes souffrant de handicaps, seniors, etc.)
  • Fonctionnalités
  • Référencement (SEO, SEA)
  • Aspects juridiques (législation, RGPD...)

Sous chacune de ces rubriques, il y a une série de paramètres à prendre en considération.

Je mets à votre disposition un document qui recense les critères qu'il convient d'évaluer pour un audit web. Ce fichier n'est sans aucun doute pas exhaustif : si vous y voyez des lacunes, n'hésitez pas à me les signaler :)

mercredi, 11 juillet 2018

Migrer un site Wordpress

Wordpress

Pour migrer un site Wordpress d'un espace vers un autre, il convient de distinguer l'hébergement 1 (source) et l'hébergement 2 (destination).

  1. Exportez les fichiers depuis l'hébergement 1 vers l'hébergement 2 (votre espace FTP ou local, sous var/www (LAMP/MAMP), wamp/www (WAMP), xampp/htdocs (XAMPP))
  2. Exportez la base de données .sql présente dans votre SGBD 1 (ex : PhpMyAdmin ou Adminer)
  3. Créez une nouvelle base de données ou, si vous n'en avez pas la possibilité, préfixez vos tables avec de nouveaux indices en cherchant/remplaçant les mentions "wp_" au sein de votre fichier .sql par un autre préfixe. Par exemple = "wpnew_"
  4. Importez le fichier .sql(généré à l'étape 2) dans votre SGBD (destination)
  5. Modifiez le fichier wp_config à la racine des fichiers exportés à l'étape 1, changez vos identifiant d'utilisateur, mot de passe, serveur, et le nom de votre base de données si vous en avez changé
  6. Utilisez DB search & replace, placez le fichier décompressé à la racine de votre nouveau dossier Wordpress
  7. Rendez-vous à l'adresse où se situe le dossier DB Search & replace, saisissez vos identifiants de base de données et remplacez l'ancienne adresse URL (source) par la nouvelle (ex : http://monsite.fr par http://localhost/monsite) — pensez à réitérer l'opération une deuxième fois si vous avez saisi des adresses en https:// dans les articles/pages/médias de votre propre domaine
  8. Effectuez un Dry run (changements fictifs), observez si les modifications sont pertinentes et, si c'est le cas, réalisez ensuite un Live run (effectif et réel) qui modifiera toutes les entrées au sein de votre base
  9. Rendez-vous dans votre panneau de contrôle /wp-admin/. Après vous être identifié, rendez-vous dans Paramètres > Permaliens, et revalidez l'option précochée.
Votre déménagement devrait, en principe, être réalisé sans heurts ! ;)

mardi, 5 décembre 2017

RedBeanPHP, un ORM

RedBeanPHPRedBeanPHP est un ORM (Object-Relational Mapping), c'est-à-dire un  type de programme informatique qui se place en interface entre un programme applicatif et une base de données relationnelle pour simuler une base de données orientée objet (définition Wikipédia). RedBeanPHP permet d'interagir avec MySQL, PostgreSQL et SQlite. Parmi les ORM PHP les plus connus, on connaît entre autres Doctrine et Eloquent.

Installation

Pour l'installation de RedBeanPHP, rien de plus simple : il convient de télécharger le dossier compressé le plus récent, qui correspond au SGBDR que vous souhaitez utiliser. Ensuite, déposez le dans votre projet web en cours, et appelez-le dans les fichiers où des interactions avec la base de données sont nécessaires.


// ENTER.PHP

require_once('inc/rb.php');

Ensuite, effectuez la connexion à votre base de données dans un fichier tiers que vous appellerez derrière la ligne de code précitée.

require_once('inc/database.php');

// DATABASE.PHP

// effectuer la connexion
R::setup('mysql:host=localhost;dbname=chat_id','root','');

// vérifier la connexion
$isConnected = R::testConnection();
     if($isConnected !== true) {
       $_SESSION['message'] = "La connexion est inopérante";
       header('location:index.php');
     }

Pensez à installer également l'extension mbstring pour que l'installation fonctionne - à activer sous un Wamp via les paramètres, et à installer sous un Lamp comme suit :


sudo apt install php7.2-mbstring
sudo service apache2 restart

Ceci fait, si votre base de données est déjà créée, le CRUD (create, retrieve, update, delete) peut commencer.


CRUD

Create (INSERT)


// Attention, pour que les insertions passent, l'extension mbstring doit être installée.
$users = R::dispense('users');

$users->login = $user;
$users->password = $password;
$users->email = $email;

$id = R::store($users);

Retrieve (SELECT)

getAll, getRow, getCol génèrent des tableaux ; find, findAll, findMulti des objets.

// Recherche de toutes les données de la table 
$users = R::getAll('SELECT * FROM users');

// Recherche d'une ligne de données spécifique dans la base de données
$user = R::getRow('SELECT * FROM users WHERE login = :login', [':login' => $user]);

// Recherche d'une colonne spécifique
$onoff = R::getCol( 'SELECT onoff FROM onoff WHERE id = :id', [ ':id' => 1 ] );

// Recherche de données correspondant à une requête précise
$questions_user = R::getAll( 'SELECT id,titre FROM questions WHERE user_id = :user_id AND suite = :suite', [ ':user_id' => $user_id, ':suite' => 0 ] );

// Recherche de toutes les données de la table 
$articles = R::findAll('articles', ' ORDER BY date DESC');

// Recherche de données correspondant à une requête précise 
$articles = R::find('articles', 'statut = ?  ORDER BY date DESC', array('1'));

// Compter toutes les valeurs de la table :
$numOfUsers = R::count( 'users' );

// Compter toutes les valeurs répondant à un critère précis
$numOfUsers = R::count( 'users','login = ?', [$user] ); // Compter le nombre de fois qu'est reprise la valeur spécifiée dans la table

// Compter toutes les valeurs répondant à plusieurs critères
$nb_questions_base = R::getCol( 'SELECT count(id) FROM questions WHERE user_id = :user_id AND suite = :suite', [ ':user_id' => $user_id, ':suite' => 0 ] );

// Jouer sur les paramètres descendant, ascendant, et la limite de résultat attendue
$statut_suite = R::getCol( 'SELECT state FROM questions WHERE suite = :suite ORDER BY id DESC LIMIT 1', [ ':suite' => $id_question ] );

Update (UPDATE)


$users = R::load( 'users', $user_id );

$users->mode_reponse = $mode_reponse_set;
R::store($users)

Delete (DELETE)


$table = R::load($_POST['table'], $_POST['id_mot']);
R::trash($table); //for one bean
R::trashAll($table);

Sources

- page 1 de 5