PHP → Фильтрация входных данных в PHP
Данным, полученным от пользователя, доверять нельзя.
Что это значит? А это значит то, что если нам нужно, чтобы пользователь ввел число, это совсем не означает, что он введет именно число. Он может ввести что угодно. И поэтому нам необходимо проверить корректность введенных пользователем данных и оградить себя от возможных вследствие этого ошибок и улучшить безопасность наших скриптов.
Обычно для этого пользуются регулярными выражениями, но начиная с версии 5.2.0, в PHP есть специальные функции, которые выполняют эту работу.
PHP → Simple Directory Listing — простой и функциональный файловый менеджер на PHP
Simple Directory Listing — это бесплатный PHP-скрипт с функцией простого файлового менеджера. Несмотря на его простоту и маленький размер, он предоставляет много довольно полезных функций:
- Коприрование, перемещение, переименование каталогов
- Скачивание файлов (через этот скрипт)
- Чтение/редактирование файлов
- Создание файлов/каталогов
- Загрузка файлов на сервер
- Возможность установки "виртуального корня" для просмотра каталогов
- Работает с javascript и без javascript
- Поддержка юникода
- Предпросмотр изображений
- RSS
- FTP-слой
- …и многое другое
Характеристики:
- Вся установка заключается в загрузке файла на сервер
- Простая настройка (может работать вообще без настройки)
- Скрипт состоит всего из одного файла
Лично мне скрипт очень понравился, много настроек, богатый функционал и простота использования
Качаем отсюда
PHP → Дыры в большинстве preg_match фильтров
Мне часто приходится разбираться в чужих скриптах. Много этих скриптов содержит регулярные выражения, и я заметил, что большинтсво регулярных выражений в этих скриптах написаны с ошибками.
Большинство PHP-разработчиков используют символы ^ и $ в своих регулярных выражениях, до конца не понимая что они получают в итоге. Можно встретить очень много фильтров наподобие такого:
<?php
$clean = array();
if (preg_match("/^[0-9]+:[X-Z]+$/", $_GET['var'])) {
$clean['var'] = $_GET['var'];
}
?>
Довольно распространенный способ фильтрации входных данных, не так ли?