2013-03-22 2 views
-1

Надеюсь, вы сможете помочь мне с этим. У меня есть информационный бюллетень, который я обновляю и отправляю по электронной почте клиентам ежемесячно. Это электронное письмо интегрировано в php-скрипт массового рассылки. Сценарий запрашивает базу данных SQL для получения адресов электронной почты.Защита файла сценария PHP для массовой почты

Что меня беспокоит, так это то, что любой пользователь может получить доступ к этому скрипту и выполнить его. Например, посетив эту страницу: www.domain.com.au/newsletter/bulk_email.php

Как защитить этот скрипт, так что я могу его получить или выполнить, а не публично? Есть ли защита паролем, или что является лучшим методом?

Спасибо,

D

+1

Добавить '.htaccess' с правилом' отказать из all' в директории, которую вы хотите сделать недоступными или определить некоторые константы в сценарии, который включает 'bulk_email.php' и в' bulk_email.php' проверяет, определена ли эта константа. Если это не означает, что скрипт был доступен через URL. – Leri

+0

Возможный дубликат http://stackoverflow.com/questions/11283866/protect-a-file-with-htaccess-and-htpasswd – fiunchinho

ответ

0

добавить это в верхней части вашего сценария.

if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != 'YOUR_USER_NAME' || $_SERVER['PHP_AUTH_PW'] != 'YOUR_PASSWORD') { 
    header('WWW-Authenticate: Basic realm="TEST"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Not authorized'; 
    exit; 
} 

echo 'Continue script'; 
+0

Это похоже на хорошее решение, но могут ли эти учетные данные быть взломаны? – DLO

0

Есть два способа для защиты PHP-файлов от прямого доступа:

Way 1

Добавить файл в .htaccess с правилом для отказа от всех. Но это правило может создать когда-нибудь прекратить вас и делать определенные вещи.

Way 2

Создайте простую форму с именем пользователя и паролем с опцией пост и когда имя пользователя и пароль будет введен, то он будет перенаправлять вас насыпной скрипт электронной почты и совпадать с именем пользователя и пароль, если он совпадает, то выполнить команда еще не.

Смежные вопросы