Я использую hunchentoot для создания простого веб-приложения, чтобы выставить дерево каталогов в Интернете. Проблема, с которой я столкнулась, заключается в нахождении надежного и безопасного способа определить, является ли запрошенный каталог фактически дочерним каталогом *share-root*
, который является /srv/share
.Common Lisp определить, является ли каталог поддиректором или другим каталогом
Я провел время cl-fad, но это не совсем то, что мне нужно (или я не использую его таким образом, чтобы решить мою проблему).
Моя цель состоит в том, чтобы иметь возможность получить такой путь, как: /srv/share/media/../../../
и реализовать запрос следует игнорировать, потому что он просит что-то за пределами общего доступа.
'(enough-namestring #p" src /../ "#p" src/")' возвращает '' src /../ "для меня в SBCL 1.1.18 на Linux x64. – Svante
@Svante: does '(truename" src /../ ")' работает? (см. править) – sds
Это дает мне абсолютный каталог вместо относительного каталога, начинающегося с ': up', поэтому' pathname-under-p' возвращает всегда true. – Svante