Что вы описываете, это нормально.
У вас есть файлы PHP, которые доступны в вашем каталоге www, поэтому apache (или ваш любимый веб-сервер) может читать и обрабатывать их. Если вы их вытащите, вы не сможете связаться с ними больше, так что нет реальной возможности такого рода.
В конце концов, ваши PHP-файлы для AJAX - это просто обычные php-файлы, скорее всего, ваш другой проект также содержит php-файлы. Правильно ? Они не более или менее подвержены риску, чем любой скрипт на вашем сервере.
Убедитесь, что вы запрограммировали «чистый». Подумайте о злых запросах при написании своих php-функций, а не после их написания. Как вы уже это сделали: правильно укажите весь входящий вход, который может попасть в базу данных или чувствительную функцию.
Вы можете добавить проверки безопасности на свои входящие значения и создать автоматическое электронное письмо, если обнаружите, что кто-то пытается злые вещи. Поэтому вы, вероятно, получите предупреждение в таких случаях. Но с другой стороны: вы будете регулярно получать предупреждения, потому что некоторые компании автоматически сканируют веб-сайты на наличие возможных ошибок. Таким образом, вы также получите предупреждение о таких сканировании.
Помимо написания вашего кода как «безопасного», как вы можете, вы можете добавить проверку референта в свой код. Это означает, что ваш PHP-файл будет реагировать только в том случае, если ваш сайт был предоставлен в качестве референта при доступе к нему. Этого достаточно, чтобы заблокировать 80% детей. Но с другой стороны: несколько интернет-пользователей не отправляют рефери вообще, некоторые прокси фильтруют это.(Я лично проигнорировал бы их, половина интернет-перерывов на них в любом случае)
Еще один уровень защиты может быть добавлен htaccess, вы можете сделать больше всего в PHP, но он все равно может представлять для вас интерес: http://httpd.apache.org/docs/2.0/howto/htaccess.html
@zerkms Итак, все файлы на каждой существующей веб-странице не должны иметь никакой конфиденциальности? – Norse
PHP не подвергается публике, поэтому «язык на стороне сервера». Он выполнен, и результаты выводятся. – Shea
@andrewjackson Правильно, но я бы предпочел не давать кому-либо возможность играть с URL-адресом, выполняя такие вещи, как 'search_data.php? Id = 394 & pass = 493202'. Разве это не разумно? – Norse