Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность в PHP, Статья 
:(
    Опции темы
Mal Hack
Дата 7.1.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Цитата(R.M. @  7.1.2007,  18:47 Найти цитируемый пост)
Что ты хотел этим сказать? smile

Это - информация, которую ты не нашел.
PM ICQ   Вверх
Staind
Дата 17.12.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 17.12.2007
Где: Планета сокровищ

Репутация: нет
Всего: 3



По поводу бага "Ошибка №1: include-баг".
У меня так сделано:
Меню сайта (с шапкой) в отдельном файле menu.php
Этот файлик прицепляется к каждой нужной страничке вот таким образом: "include "menu.php";". А вот теперь вопрос: "Так оставить, или лучше записать так include("./".basename("menu.php")); ? 

--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
Alx
Дата 17.12.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



Staind, послушай, тут имелось ввиду использование basename для того что обезопасить данные, пришедшие от пользователя, потому что злоумышленник может составить запрос так, чтобы изменилась директория расположения подключаемого файла, что позволит ему подключить любой файл на сервере, чего нам совершенно не нужно. в данном случае ты сам выбираешь какой файл подключать, поэтому максимум что у тебя получилось - это защита от самого себя. smile 


--------------------
PM MAIL WWW ICQ   Вверх
Staind
Дата 17.12.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 17.12.2007
Где: Планета сокровищ

Репутация: нет
Всего: 3



Все. Еще подумав 10 минут над багом понял, что это не то, что мне нужно, спасибо Alx за ответ. Я просто новичек smile
--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
Alx
Дата 17.12.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



мне вот интересно узнать, почему в последнее время все запретили подгружать аватарки, которые выдают скрипты?
даж на винграде так.. хотя у меня mod_rewrite avatar.gif -> avatar.php занял минуту...
но на многих новых сайтах вообще разрешили загружать картинки только с локалки..


--------------------
PM MAIL WWW ICQ   Вверх
bars80080
Дата 18.12.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



Цитата
По поводу бага "Ошибка №1: include-баг".

по этому поводу есть замечательная идея:
обрабатывать только ожидаемые данные,
то есть вместо $_GET['page'] = 'next_page.php'; использовать $_GET['page'] = 12;
и далее из БД или просто из файла или написанного внутри того же скрипта проверять соответствие:
Код

$mv = array(array(0, 'главная', 'main.php'),
array(12, 'следующая', 'next_page.php'));
if(!empty($mv[$_GET['page']])) include ($mv[$_GET['page']][2]); 
else include('main.php');

всё
PM MAIL WWW   Вверх
Feldmarschall
Дата 18.12.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Код $page=basename($_GET['page']) на порядок короче твоего. Причем не увеличивается(!) с увеличением количества страниц.

PM   Вверх
bars80080
Дата 18.12.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



не, я вообще с глобальной мыслью о централизации

то есть, если меню загнать в БД, чтоб легко было править и т.п....
тогда и проверять надо исходя из (есть ли такая страница)

то есть чтобы вообще никаких сюрпризов
PM MAIL WWW   Вверх
Feldmarschall
Дата 18.12.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Лично я - так вообще не сторонник инклюдить переменные PHP скрипты.
Кабы не классическая реализация ЧПУ, когда все запросы идут на один индекс, который уже инклюдит в себя нужные модули - так и вообще бы никогда ничего не инклюдил с переменным именем, а только конфиги.

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

Но спорить о том, какой способ лучше - не стану. Все хороши.
PM   Вверх
bars80080
Дата 18.12.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



ой, вспомнил,
к вопросу о копировании файлов, допустим

Код
copy('http://server.ru/index.php', 'my_local_folder/index.php');

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

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

задавать конкретный адрес в передаваемых параметрах ( index.php?page=lock.php ) - дополнительный шанс хакеру
чем меньше информации о структуре сайта, тем сложнее будет его сломать
Цитата(Opik @  6.1.2005,  00:06 Найти цитируемый пост)
Это лишит злоумышленника "лишней" информации по поводу скрипта, тем самым кое как обезопасив его


PM MAIL WWW   Вверх
Feldmarschall
Дата 18.12.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата(bars80080 @  18.12.2007,  15:51 Найти цитируемый пост)
copy('http://server.ru/index.php', 'my_local_folder/index.php');

сотри, пока никто не видел...

адреса же вида index.php?page=lock.php вообще не имеют смысла.
куда проще и удобнее писать 
lock.php
PM   Вверх
bars80080
Дата 18.12.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



стёр бы, если бы не поигрался с несколькими сайтами на вшивость

оказывается очень удобно коллекции фотографий таким образом вытягивать
PM MAIL WWW   Вверх
Feldmarschall
Дата 18.12.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



при чем здесь коллекции фотографий? ты пишешь не про фотографии, а про index.php

Добавлено @ 16:36
Цитата(bars80080 @  18.12.2007,  15:51 Найти цитируемый пост)
мы копируем чужой файл, разбираемся с методикой его поведения, достаём секретный сведения

слушай, не в обиду, перечитай, плиз, http://phpfaq.ru/na_tanke


Это сообщение отредактировал(а) Feldmarschall - 18.12.2007, 16:36
PM   Вверх
bars80080
Дата 18.12.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



если отсылаешь на танк, то конкретней куда (дуло, башня, гусеница?),
если конкретно index.php, то и его тоже копировал, просто я же не хакер долбанный какой-нибудь, лазить по чужим файлам
так кое-где использовал для получения толпы фоток
PM MAIL WWW   Вверх
Feldmarschall
Дата 18.12.2007, 16:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата

Результатом работы скрипта на PHP в большинстве случаев является обычный текст. Текст HTML страницы. Которая отдается браузеру и показывается им, как обычный HTML. Вы сами можете в этом убедиться, написав в скрипте
<? echo "Привет, <b>Вася!</b>"; ?>;
А потом просмотрев в браузере исходный текст полученной страницы. Никаких тегов PHP там нет! Только
Привет, <b>Вася!</b>

Потому, что PHP исполняется на сервере!

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.1631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.