[spip-check] 2 commits

technova69/spip-check | 2 commits

Par Gilles Vincent, le 25 août 2026 à 13h58min :

Merge branch ‹ fix/symlink-reporting › into ‹ main ›

fix: signaler les liens symboliques dans le flux indexé

See merge request technova69/spip-check!5

Modifié
README.md
spip-check.php
src/SpipCheck.php
tests/unit/FileIndexerTest.php
tests/unit/IndexedScannerTest.php

Détails : https://git.spip.net/technova69/spip-check/-/commit/bafd5ee2f044dfa0a373d1a0125f4e8a82edd735

==============================
Par gilles, le 25 août 2026 à 13h49min :

fix: signaler les liens symboliques dans le flux indexé

FileIndexer enregistrait bien les liens symboliques portant une
extension PHP, mais classifyBatch() les écartait avec les entrées non
régulières (type !== 'file') : la règle symlink de Scanner
n’atteignait jamais le rapport. Un lien déposé dans l’arborescence et
pointant vers un webshell hors de la racine du site passait donc
inaperçu, alors que Scanner::scan() le signalait.

Les liens symboliques deviennent des candidats et reçoivent leur
signalement de la phase d’analyse, comme les autres règles. Les deux
raccourcis de classification — unexpected_root_script et
forbidden_writable_script, tous deux déplaçables — restent réservés
aux vrais fichiers : un lien relève de la règle symlink, en revue
manuelle, jamais du déplacement. La liste blanche de la racine ne
s’applique plus qu’aux vrais fichiers, si bien qu’un index.php
symbolique est signalé au lieu d’être ignoré.

Les liens vers un répertoire restent hors de portée : isLink() est
testé avant isDir(), donc le .well-known de Let’s Encrypt n’est ni
parcouru ni indexé, même lorsqu’il sort de la racine. Un test verrouille
ce comportement, avec un lien cassé et une boucle sur la racine, pour
qu’une indexation ne puisse plus déborder ni tourner en rond.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Modifié
README.md
spip-check.php
src/SpipCheck.php
tests/unit/FileIndexerTest.php
tests/unit/IndexedScannerTest.php

Détails : https://git.spip.net/technova69/spip-check/-/commit/0fdce9c99c3d880431ea8673d1973d8fcec6b719