Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Безопасность
 
 автор: crematoty   (01.03.2005 в 17:28)   письмо автору
 
 

Наскоко я понимаю, PHP-скрипт никак нельзя просмотреть с клиентского компьютера.
Я к тому, что можно, например, в index.php писать:

<?
if ($login="login1" && $password="password1") {
   ...
}
?>

И какой-нибудь вновь пришедший никогда не узнает ни "login1", ни "password1".
Я прав?

   
 
 автор: glsv (Дизайнер)   (01.03.2005 в 19:49)   письмо автору
 
   для: crematoty   (01.03.2005 в 17:28)
 

>Наскоко я понимаю, PHP-скрипт никак нельзя просмотреть с клиентского компьютера.
Если все работает нормально, то нет. Но атаками можно вызвать отказ сервера в и вместо интерпретации php он будет выдавать исходные тексты.

И еще: А вы уверены, что доступа к скриптам не имеют посторонные лица?

   
 
 автор: crematoty   (01.03.2005 в 22:57)   письмо автору
 
   для: glsv (Дизайнер)   (01.03.2005 в 19:49)
 

В смысле какие-нибудь сисадмины сервера, на котором размещен мой сайт?
Если так, то на 90% :-)

   
 
 автор: glsv (Дизайнер)   (01.03.2005 в 23:39)   письмо автору
 
   для: crematoty   (01.03.2005 в 22:57)
 

И они тоже, но не только. Разные бывают ситуации... Пароли могут уйти на сторону совершено случайно, либо совершенно наоборот "не случайно".

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


<?
  
if ($login=="login1" && MD5($password)=="хеш-код-пароля") { 
  ...
?>

   
 
 автор: crematoty   (02.03.2005 в 15:30)   письмо автору
 
   для: glsv (Дизайнер)   (01.03.2005 в 23:39)
 

А где подробнее про Хеш-коды прочесть можно?
Точнее, как с ними в PHP работать?

   
 
 автор: glsv (Дизайнер)   (02.03.2005 в 17:34)   письмо автору
 
   для: crematoty   (02.03.2005 в 15:30)
 

Для этого можно использовать функцию md5()

string md5 ( string str [, bool raw_output]) 


Вычисляет MD5 хэш строки str используя алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число. Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.



<?php
$str 
'apple';

if (
md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo 
"Would you like a green or red apple?";
    exit;
}
?>  

   
 
 автор: crematoty   (03.03.2005 в 11:50)   письмо автору
 
   для: glsv (Дизайнер)   (02.03.2005 в 17:34)
 

В любом случае криптографическая защита основывается на каком-то ключе. Откуда он берется?
Генерится на основе timer'а?
Железа моего компа?
Или просто вшит в какой-нибудь exe-шник?

   
 
 автор: glsv (Дизайнер)   (03.03.2005 в 13:58)   письмо автору
 
   для: crematoty   (03.03.2005 в 11:50)
 

MD5 - это не криптографическая защита - это алгоритм генерации хеш-кода.
Такие алгоритмы, по определению, не обратимы и не используют ключей.
MD5 - это сложный математический алгорим, изменяющий входную инфомацию до неузнаваемости и выдающий строку фиксированной длины, которую называют хешем, хэш-значением, свёрткой.
Длина этой выходной строки определяет стойкость алгоритмы ко взлому.
В связи с увеличением мощности компьютеров алгоритм MD5 уже становится ненадежным, т.е. есть вероятность взлома в приелимые сроки.
// Неприемлимые сроки - это взлом, в как минимум, в течении десятков лет дезостановочной работы самых современных компьютеров //

   
 
 автор: cheops   (01.03.2005 в 23:04)   письмо автору
 
   для: crematoty   (01.03.2005 в 17:28)
 

Да, только код должен выглядеть следующим образом
<? 
if ($login=="login1" && $password=="password1") { 
   ... 

?>

   
 
 автор: crematoty   (01.03.2005 в 23:09)   письмо автору
 
   для: cheops   (01.03.2005 в 23:04)
 

Фянкс... :-)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования