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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Переделать скрипт по register_globals off и сделать стандартную фильтрацию

Сообщения:  [1-10]    [11-20]  [21-29] 

 
 автор: zeta777   (05.12.2007 в 19:17)   письмо автору
 
   для: Trianon   (02.12.2007 в 19:39)
 

Большое спасибо. Все работает.

   
 
 автор: zeta777   (02.12.2007 в 19:56)   письмо автору
 
   для: Trianon   (02.12.2007 в 19:39)
 

Отослала вам письмо

   
 
 автор: Trianon   (02.12.2007 в 19:39)   письмо автору
 
   для: zeta777   (02.12.2007 в 19:32)
 

Нужны все файлы, которые так или иначе втянуты в процесс. В идеале - вообще весь исходный архив + архив файлов с Вашими исправлениями. Больше не меньше.
SQL-дамп тоже будет полезен, можно будет сразу проверить что в базе не так.

   
 
 автор: zeta777   (02.12.2007 в 19:32)   письмо автору
 
   для: Trianon   (02.12.2007 в 19:26)
 

Спасибо большое. Вам прям весь скрипт или только эти файлы? sql файл нужен?

   
 
 автор: zeta777   (02.12.2007 в 19:27)   письмо автору
 
   для: exp   (02.12.2007 в 17:25)
 

Сканнер http://www.acunetix.com/ Хороший сканнер. Иногда, как мне кажется излишне строг, найдет уязвимость там, где ее нет (или по крайней мере кажется что нет и xspider ничего не находит), но зато там, где она есть - уж точно не пропустит. Хороший анализ выдает. Даже советы по исправлению. Дорогой ($ 4995), но в инете есть рабочая пиратская версия :), которая нормально обновляет базу данных по уязвимостям.

Я понимаю, что если сама сделаю - то лучше разберусь. Но не могу, ну никак эту авторизацию сделать. Знаете, сколько я с ней мучаюсь уже? Не получается. Проблема в том, что я-то не программист вообще, и никогда им не была, училась по книжкам да по статьям в инете, да вот еще по форумам... И из моих знакомых я единственный, кто вообще слышал слово такое - PHP :). Просто этот скрипт больше разработчиками не поддерживается, они предлагают только на новые их скрипты переходить, но ведь и новые их скрипты тоже с register_globals on работают, а я этим скриптом давно пользуюсь и у меня база пользователей большая (но это не проблема, я бы ее как-нибудь переконвертировала), что самое главное - я к нему кучу нужных мне функций приделала, в других скриптах знакомств их вообще нет, обидно терять, оптимизировала нагрузку на базу данных, насколько возможно (тоже, между прочим для меня непосильный труд был :), плюс я его все-таки знаю, как свои пять пальцев, получается все зря.... А времени мало - у меня неожиданно сайт раскрутился :), посещаемость резко выросла, соотв-но опасность того, то кто-то хакнет не сегодня-завтра - реально увеличилась. В общем, поверите - день и ночь сижу, переделываю скрипт, даже по ночам мне уже этот PHP снится (серьезно).

   
 
 автор: Trianon   (02.12.2007 в 19:26)   письмо автору
 
   для: zeta777   (02.12.2007 в 16:51)
 

1. Я бы помог, если б мог глянуть на исходники полностью.
Где можно откопать весь пакет, без необходимости его купить, я не нашел.

2. Собственно мы здесь все (ну почти все) собрались именно затем, чтобы друг у друга просить совета или помощи, и соответственно, друг другу помогать. Так что чему тут можно стыдиться, я не вижу совершенно. Наоборот, то что Вы не пасуете перед нетривиальной задачей, а упорно пытаетесь выяснить, как её забороть (пусть при помощи зала), лишь делает Вам честь. Как минимум в моих глазах - совершенно точно. Неудобно ....... в лыжах и на гамаке. А спрашивать совета, там где этого ждут, вполне удобно.

3. моя аська шесть восемь семь пять восемь девять пять. И если Вы где-нибудь поместите архив с исходниками, я попытаюсь поспособствовать более детально.

   
 
 автор: exp   (02.12.2007 в 17:25)   письмо автору
 
   для: zeta777   (02.12.2007 в 16:51)
 

если своими руками хотя-бы переделано , то проще разобраться потом при эксплуатации,
тем-более вам осталось совсем немножко разобраться :)

и уязвимости при разных настройках по разному могут повлиять, можно просто для себя делать скрипт, зная как что у себя настроено. а можно делать ориентируясь на любые возможные включения/выключения
интересный сканер (acunetix vulnerubility scanner) гугл такого не знает , где вы его нашли ?

   
 
 автор: zeta777   (02.12.2007 в 16:51)   письмо автору
 
   для: exp   (02.12.2007 в 15:59)
 

ну, да проверка есть. В файле center.php есть include файла member.php, в котором определяются права пользователя. В этом файле есть строчка:

$r=q("select status, rdate from members where id='$auth' and pswd='$pass'");
if(e($r))
{header("Location: login.php");exit;}

Просто я про это не упоминала, потому, что когда проверяла файл login.php я строчку

if(e($r))
{header("Location: login.php");exit;}

из member.php убирала, чтобы понять, это из center.php меня обратно на login.php перебрасывает или я остаюсь там на login.php, никуда не иду. Получалось, что просто я туда (в center.php) не попадаю, потому что без строчки if(e($r))
{header("Location: login.php");exit;} все равно я на login.php оставалась

Но теперь, когда я убрала switch и сделала if - вроде с файлом login.php разобралась. Теперь без строчки проверки я на center.php попадаю.
Теперь проверку на member.php нужно пройти :)

Значит, было так:

$r=q("select status, rdate from members where id='$auth' and pswd='$pass'");
if(e($r))
{header("Location: login.php");exit;}

Делаю так:

$auth=$_COOKIE['auth'];
$pass=$_COOKIE['pass'];
$r=q("select `status`, `rdate` from `members` where `id`='".intval($_COOKIE['auth'])."' and `pswd`='".$_COOKIE['pass']."'");
if(e($r))
{
setcookie("auth", "", time() - 3600*24*30*12, "/");
setcookie("pass", "", time() - 3600*24*30*12, "/");
header("Location: login.php");exit;
};


В общем окончательно у меня получается так:

login.php

$ff = f($r);
if($ff['status']==0) header("Location: login.php?s=confirm");
elseif($ff['status']==2) {header("Location: login.php?s=contact");}
elseif($ff['status']==1)
{
setcookie("auth",intval($_POST['id'], time()+60*60*24*30));
setcookie("pass",$_POST['pswd'], time()+60*60*24*30);
q("update `profiles` set `ldate`='".strtotime(date("d M Y H:i:s"))."' where `id`='".intval($_POST['id'])."'");
d($db);
header("Location: center.php");}


А дальше в member.php проверка идет так:

$auth=$_COOKIE['auth'];
$pass=$_COOKIE['pass'];
$r=q("select `status`, `rdate` from `members` where `id`='".intval($_COOKIE['auth'])."' and `pswd`='".$_COOKIE['pass']."'");
if(e($r))
{
setcookie("auth", "", time() - 3600*24*30*12, "/");
setcookie("pass", "", time() - 3600*24*30*12, "/");
header("Location: login.php");exit;
};


Только она не работает :(. Я опять в login.php оказываюсь, но теперь уже я туда из center.php попадаю.

Еще раз обращаюсь: может есть кто-нибудь, кто сможет помочь мне за оплату?

В принципе мне осталось-то уже немного (я надеюсь) - вот эту самую авторизацию и проверку пройти, чтобы на пользовательскую территорию корректно попадать. То есть всего три файла - login.php (login.php по сути уже работает), member.php и center.php

Просто мне уже неудобно перед всеми, кто мне помогает, я всем очень благодарна, но уже стыдно надоедать глупыми вопросами :)

   
 
 автор: sim5   (02.12.2007 в 16:34)   письмо автору
 
   для: zeta777   (02.12.2007 в 16:27)
 

Вы прямо таки "фантастический коммент" написали. switch тут не причем, я кусочек вашего кода прописал, в отрыве вообще от всего остального. Пропишите отдельно прстую кострукцию switch - думаю вы сами понимаете, что она у вас работать будет отменно. В реальном же коде (вам это еще ранее предлагал Trianon), заремируйте switch, и вместо этого сделайте вывод на экран:
echo $ff['status'];
exit;
Если вы получите статус равный 1 при этом, то проблемы надо искать после case 1:, а не в самом switch.

   
 
 автор: zeta777   (02.12.2007 в 16:27)   письмо автору
 
   для: sim5   (02.12.2007 в 15:35)
 

Не сомневаюсь, что PHP не отличается, но меня перебраcывает на test.php при любых значениях $ff['status']. У меня файл, конечно не main.php, а login.php и значения статуса должны выводится именно в нем, если статус=0 или 2, если статус равен 1 - должно перебросить на test.php. Теоретически. Практически меня теперь туда перебрасывает при всех значениях статуса :). Ну, да, ладно, я переделала скрипт авторизации без switch, потому как переделать с использованием switch у меня так и не получилось.

   

Сообщения:  [1-10]    [11-20]  [21-29] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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