2017-01-08 3 views
-1

Я создал код PHP. (Myphp.php)Как защитить файл PHP?

if(count($_GET) === 1 && isset($_GET['secretcode'])) { 
    echo "my personal data"; 
} 
else{ 
echo "Not Found" 
} 

Таким образом, пользователю нужно просматривать что-то вроде "http://server.com/myphp.php?secretcode" для того, чтобы просмотреть PHP.

Вопрос в том, безопасно ли это сделать? Может ли кто-то обойти PHP? Если да, то как сделать его более безопасным?

Что-то подобное может работать

//.htaccess 
<Files *.php> 
Deny from All 
</Files> 

Но я хочу, чтобы каждый может получить доступ к нему только тогда, когда они вошли в правильный параметр.

Спасибо.

+3

Возможно, это было бы более безопасно, если бы вы проверили значение 'secretcode', а не только, если оно установлено. – chris85

+1

... как в '&& $ _GET ['secretcode'] ==" x "' - Edit: это, вероятно, то, что означает @ chris85, и это полезно только для одноразового использования, в зависимости от того, что именно вы хотите сделать здесь , –

+0

получил это .. хорошо. спасибо @ Fred-ii- .. Файл будет содержать «имя людей и их возраст». Это не слишком личное, поскольку я просто хочу начать. Возможно, я буду использовать другое решение, чтобы сделать его более безопасным. –

ответ

0

В зависимости от того, насколько чувствительна ваша информация, нет, это не безопасно.

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

Параметры GET находятся за пределами URL-адреса, а URL-адреса, к которым вы обращаетесь, регистрируются и хранятся на сторонних серверах, таких как ваши интернет-провайдеры, а также их провайдерах. Если вам удастся получить доступ к этому URL-адресу в открытом WiFi, то кто-либо еще в этой сети будет сможет видеть, какие URL-адреса вы посещаете, и приведет к утечке вашего «секретного» URL-адреса. Если вы попытаетесь перенаправить ваш доступ через прокси-сервер, вы можете защитить секретный код от этих людей, но вместо этого вы просто просочились эту информацию в прокси-сервер.

Возможно, вы можете в некоторой степени смягчить это, только просматривая свой секретный URL-адрес через HTTPS, но даже тогда вы можете случайно посетить его, когда в сети, для которой у администратора установлен корневой сертификат на вашем компьютере (например, как ноутбук для работодателя), и в этом случае ваш секрет теперь отсутствует. Вы также, как правило, не сможете защитить какой домен, который вы посещаете, независимо от того, используете ли вы SSL/TLS или нет.

Как отметил в своем комментарии @ chris85, вы на самом деле не проверяете, является ли секрет правильным. Все, что мне нужно для доступа к вашей секретной информации, - это просто имя параметра, так как вы также не проверяете, что значение равно чему-то.

Вы можете столкнуться с проблемами удобства использования в своем собственном использовании. Ваша защита будет лишать вас доступа, если вам когда-либо понадобится использовать более одного параметра запроса, кроме вашего «секретного» кода.

+0

, поэтому я также заявил, что размещаю их файлы вне «публичных». –

+0

Благодарим за хорошее объяснение. Вы очень помогли. :) –