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

Форум PHP

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

 

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

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

тема: Безопасность с cookies... А также скорость скриптов.

Сообщения:  [1-10]   [11-18] 

 
 автор: Trianon   (11.07.2009 в 19:30)   письмо автору
 
   для: as67ji   (11.07.2009 в 11:44)
 

$arr = 6;
$i = 3;
print $arr[$i];


Какой реакции Вы ожидаете?

  Ответить  
 
 автор: Trianon   (11.07.2009 в 19:29)   письмо автору
 
   для: GeorgeIV   (11.07.2009 в 11:29)
 

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

Я бы сказал по-другому.
Если при таком предупреждении не нарушается логика, значит любая логика в скрипте отсутствует напрочь. А значит и вправду нестрашно.

  Ответить  
 
 автор: as67ji   (11.07.2009 в 11:44)   письмо автору
 
   для: GeorgeIV   (11.07.2009 в 11:29)
 

Ммм... Что может быть?
Допустим, у меня массив $arr, а где-то позже я случайно сделал $arr=6...
И при выводе for(...) { print $arr[$i]; } вылетит эта ошибка?

  Ответить  
 
 автор: as67ji   (11.07.2009 в 11:42)   письмо автору
 
   для: GeorgeIV   (11.07.2009 в 11:29)
 

Ммм... Что может быть?

  Ответить  
 
 автор: GeorgeIV   (11.07.2009 в 11:29)   письмо автору
 
   для: as67ji   (11.07.2009 в 11:21)
 

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

  Ответить  
 
 автор: as67ji   (11.07.2009 в 11:21)   письмо автору
 
   для: as67ji   (10.07.2009 в 13:22)
 

Не хотел создавать новую тему...
Подскажите, что обозначает ошибка
Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 2

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 3

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 4

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 5

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 6

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 7

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 8

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 9

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 10

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 11

Warning: Cannot use a scalar value as an array in C:\php\Apache2\htdocs\news.php on line 12

  Ответить  
 
 автор: As67ji   (10.07.2009 в 20:14)   письмо автору
 
   для: tvv123456   (10.07.2009 в 16:11)
 

tvv123456,
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");

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

Akdmeh, использование констант штука полезная... Но прописывать их в огромное количество файлов что-то не сильно хочется... Проще оставить всё "as is".

  Ответить  
 
 автор: tvv123456   (10.07.2009 в 16:11)   письмо автору
 
   для: As67ji   (10.07.2009 в 15:29)
 

Тут нашел у себя один из превых своих скриптов написанных на php(вроде пока ничего страшного не случилось с сайтами которые его использауют), состоит из 2-х файлов, первый обрабатывает введенные данные в форму входа и присваетвает куки, второй включается в начало каждой страницы и закрывает дотсуп если не существуют нужные куки.
файл-обработчик данных полученных с формы входа:

<?
if (isset($HTTP_POST_VARS['GLOBALS']) || isset($HTTP_POST_FILES['GLOBALS']) || isset($HTTP_GET_VARS['GLOBALS']) || isset($HTTP_COOKIE_VARS['GLOBALS']))
{
    die(
"Hacking attempt");
}

// Protect against HTTP_SESSION_VARS tricks
if (isset($HTTP_SESSION_VARS) && !is_array($HTTP_SESSION_VARS))
{
    die(
"Hacking attempt");
}

$protected "AQwjliIIsad15775QQvvbmk";
include(
"bloks/bd.php");
 if (isset(
$_POST['user']))
{
$user $_POST['user'];
}

if (isset(
$_POST['pass']))
{
$pass $_POST['pass'];
}

$result mysql_query("select * from auth where user='$user'",$db);

if (!
$result)
{
echo 
"<p>Возникла ошибка с базой данных.";exit (mysql_error());
}


if(
mysql_num_rows($result) > 0//проверяет если пользователь в базе
{
$myrow mysql_fetch_array($result);
$id $myrow['id'];
}

else 
{
echo 
"<p>В базе нет такого пользователя</p>";
exit();
}
if (
$pass == $myrow['pass']) {
setcookie ("user"$user);
setcookie ("id"$id);
setcookie ("provvv"4568872);
echo 
"<html>
<head><meta http-equiv='Refresh' content='0; URL=***'> 
</head>
</html>"
;//переадресовка на нужную страницу 
}
else {echo 
"<html>
<head>
<title>Неверный пароль</title> 
</head>
<body> Был введен неверный пароль! Вернитесь <input name='back' type='button' value='назад' onclick='history.back(); '/> и введите правильный пароль.
</html>"
; } ?>






Файл лок который подключается в начало каждого "засекреченного раздела":

<?
if(!isset($protected) OR $protected != "AQwjliIIsad15775QQvvbmk") {exit("Ошибка!");}
if (!isset(
$_COOKIE['provvv']) or $_COOKIE['provvv'] != '4568872') { echo "<html><head><title>Незарегистрированный пользователь</title> 
</head><body><p>Вы не можете просмотреть данную страницу</p>
</body></html>

"
;
exit();}

if (isset(
$_COOKIE['user'])) // раз дошли до этого места значит куки были 100% присвоены проверяем на соответствие
{
$user $_COOKIE['user'];} else {exit("Проблема с COOKIE (не опредилился автор).");}
if (isset(
$_COOKIE['id']))
{
$user_id $_COOKIE['user_id'];} 

else {exit(
"Проблема с COOKIE");}
echo 
"<font color='#CC6633'>Вы находитесь на сайте как: ".$user."</font>";
include(
"bloks/bd.php");

$result mysql_query("select * from auth where user='$user' AND id = '$user_id'",$db);

if (!
$result)
{
echo 
"<p>Возникла ошибка с базой данных. <strong>Сообщите администратору:tropnikovvv1@yandex.ru</strong></p>";
exit (
mysql_error());
}
if(
mysql_num_rows($result) != 1// небольшая проверочка на косяки(вдруг 2 пользователя с одним ником каким-то образом попали в базу
{
echo 
"<p>Не могу определиться с пользователем. Скорей всего ошибка произошла не по вашей вине. Напишите пожалуйста об ошибке:***или в <a href='gb.php'>гостевую</a></p>";
exit();
}
?>


Более менее приличный скрипт, но на админскую часть его лучше не ставить так как куки в принципе можно утащить. И желательно конечно файл lock не подключать, а прописывать его код в начале каждой страницы.

Более надежную защиту можно составить на основе вот этого:
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");

$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
Но это уже другая история потому что для обычного пользователя это будет выглядеть немного непривлекательно, обычно это используют только для админок.

  Ответить  
 
 автор: Akdmeh   (10.07.2009 в 15:51)   письмо автору
 
   для: As67ji   (10.07.2009 в 15:29)
 

раньше я юзал константу WAY
например
define('WAY', '');
значит, что скрипт в корне. а файлы подключал через include WAY.'file.php';
А если я был в подпапке от корня, то в файле прописывал define('WAY', '../');

ну как это делать вам - подумайте сами, может придумаете свой способ

  Ответить  
 
 автор: As67ji   (10.07.2009 в 15:29)   письмо автору
 
   для: Akdmeh   (10.07.2009 в 15:16)
 

Предложите другой вариант?)

  Ответить  

Сообщения:  [1-10]   [11-18] 

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

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