LINUX.ORG.RU

PHP - безопасно ли хранение пароля в скрипте?


0

1

PHP не знаю практически, понадобилось запаролить html-страничку, поискав как это можно примерно сделать с помощью php, сделал так:

<?php
echo '
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Страница с паролем</title>
<link href="index.css" rel="stylesheet" type="text/css" media="screen"/>
</head>
<body>
';

//проверка пароля
if ($_POST["pass"] === 'lor:)') {
//архив с паролем, тем же.
echo '
<div id="archive"><a href="work.7z"><h3>Проект 7 - скачать архив</h3></a></div>
';
}

else {
echo '
<div id="archive"><form name="test" method="post" action="index.php">
<p><b>Введите пароль:</b><br><input name="pass" type="password" size="25" required></p>
<p><input type="submit" value="Войти"></p>
 </form></div>
';
}

echo '
</body>
</html>';
?>

Безопасно ли так хранить пароль, прям в скрипте?



Последнее исправление: raycast (всего исправлений: 3)

Безопасно ли так хранить пароль, прям в скрипте?

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

Передавать этот пароль в HTTP POST однозначно небезопасно, потому что отснифают по дороге. Если делать так, то нужен HTTPS.

gentoo_root ★★★★★
()
Ответ на: комментарий от AITap

в данном случае - да, так как архив тоже запоролен.

raycast
() автор топика
Ответ на: комментарий от gentoo_root

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

raycast
() автор топика

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

wxw ★★★★★
()

як дите...

if ($_POST["pass"] === 'lor:)') {

замени на

if (md5($_POST["pass"]) === 'db6058ef7f24e8ea769376326f62e971') {

А лучше в данном случае просто запаролить work7z через apache/«что ты там еще юзаешь».

drakmail ★★★★
()
Ответ на: комментарий от xorik

Ну, это просто концепция. Так еще и соль надо добавить :)

drakmail ★★★★
()
Ответ на: комментарий от wxw

если вывалится исходник

то пароль тогда и не нужен. В исходнике итак есть нужная информация

jamy
()
Ответ на: комментарий от anonymous

А вообще, ТС - болван.

В чем и признался в первом посте. До вас долго доходит, но вы все равно молодец.

raycast
() автор топика
Ответ на: комментарий от jamy

А у меня получилось подругому:

$ md5sum 
Fuck You278ef7fe205dd60bd39b47448fa31c61  -
$

Так тут хэш 278ef7fe205dd60bd39b47448fa31c61 а не 63ade0047953505558f3f863cd91fd706e8b2c03

tyler19
()
Ответ на: комментарий от tyler19

Хотя перепутал, это sha1. Так речь то шла о том что MD5 можно подобрать.

tyler19
()

Плохая практика, но на данном уровне вполне приемлемо. Сделай сложную ссылку на файл, например

<a href="fdjhauwy87y7yf784y3f87h348f73f4h----AAAdwdef/work.7z">

special-k ★★★★
()

Позаботься о том, чтобы никто не смог посмотреть исходный код.

special-k ★★★★
()

О, а еще можно так)) - никаких паролей в скрипте 8)

if (md5($_POST["pass"]) === 'db6058ef7f24e8ea769376326f62e971') {
echo '
<div id="archive"><a href='.sha1($_POST["pass"]).'"/work.7z"><h3>Проект 7 - скачать архив</h3></a></div>
';
}
Но теперь главное самому не забыть..

special-k ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.