1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

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

Как обезопасить свой сайт! (примеры : How To?)

Discussion in 'Прочая Поддержка - Help Requests' started by dream, Dec 14, 2010.

  1. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    Никогда не останавливало это на картинках ))) Ctrl+PrintScreen, далее в Фотошоп )))
  2. sewgen User


    Offline
    Message Count:
    259
    Likes Received:
    40
    My version of SE:
    3.20
    С единичными фото -да.
    С альбомами - каждый раз по фотке фотожопить?
  3. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    На самом деле, никогда не ставил такой код (вообще, ограничение на правую кнопку). несмотря на то, что, как раз, с моего сайта фотки и прут, обычно. Ну тематика такая.
    Я отказался, даже, от водяных знаков. А другие сайты, (у которых в принципе фото-контент воровыть нет смысла) ставящие такую ерунду, меня почему-то, раздражают )))
  4. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    нарыл книгу об експлоитах,шелл и прочей мерзости....750 страниц удовольствия...если админы не против то вот прямая ссылка на Deposit если найду ссылки на другие обменники кину....(кто может залейте прям сюда)[SPOILER="Deposit"] TUDUC[/SPOILER]:)

    какаeто хренb...раз с разного места качает..... =//

    ---------- Сообщение добавлено в 23:19 ---------- Предыдущее сообщение было в 23:01 ----------

    ВСЁ ДАЛШЕ В ДЕБРИ ИЛИ КОШМАР WEBMASTERA- SQL INJECTIONS...
    Пока почитайте WIKI [SPOILER="wikipedia.org"]http://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_SQL-%D0%BA%D0%BE%D0%B4%D0%B0[/SPOILER] :cool:
  5. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    dream,
    Блин, после Ваших постов решил нанять спеца по безопасности для сайта )))
  6. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    можно и самому ...но млин я таааак уже з*ебался с етим.....и крч надо у galstuka насчeт SQL Injection спросить а то я тут сам слегка неврубаю....или он вроде о какихто писчалках говрил...незнаю дали бы раздел под ету тему....а то SE есть а безопасности = 0.......так чо буду копать сам если хочет кто-то то помогите развить тему...буду рад
  7. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Продолжение страшного сна :D [SPOILER="Защита от SQL инъекций средствами PHP и PDO"]Абстрактный доступ к базам данных, такой как php Portable Data Objects (PDO) вовсе не какая-либо новая концепция в программировании, но многие из разработчиков до сих пор не осознают в полной мере какие преимущества в области защиты кода предоставляет использование данной технологии, в данной статье речь пойдет о SQL инъекциях.
    SQL инъекция – это код или запрос к БД, направленный на переполнение буфера web-приложения. Каждый разработчик скриптов должен заботиться о том, чтобы разрабатываемый им код был защищен от подобных уязвимостей. Для тех кто не в курсе, SQL инъекция – это техника применяемая хакерами, использования «дыр» программного кода для выполнения произвольных SQL запросов, приводящих к уничтожению, повреждению или непредусмотренной модификации данных. В данной статье мы не будем глубоко вникать в философию SQL инъекций, но небольшой пример, думаю, привести стоит:
    Главная страница вашего сайта содержит форму входа пользователей, связанную с php скриптом, который определяет статус пользователя (зарегистрированный или нет) и наделяет его определенными полномочиями или делает доступным определенный дополнительный набор сервисов сайта. Форма входа передает сценарию две переменные методом POST:

    username=fred&password=Fr3dRul3z
    Пученные данные используются при построении SQL запроса к БД, для идентификации пользователя:

    $sql = "SELECT * FROM users WHERE username = '".$_REQUEST['username']."' AND password = '".$_REQUEST['password']."'";
    Данный код сформирует запрос:

    SELECT * FROM users WHERE username = 'fred' AND password = 'Fr3dRul3z'
    Допустим, в базе присутствует строка с такими данными – пользователю будет разрешен вход на сайт. Опытный хакер сможет легко обойти данную систему контроля, путем исключения из SQL данных логина пользователя. При этом в поле логина будет введено:

    ' OR 1==1 --
    А поле пароля нужно оставить пустым. В итоге SQL запрос к базе данных примет вид:

    SELECT * FROM users WHERE username = 'fred' OR 1==1 -- ' AND password = ''
    В результате такого запроса в БД будут выбраны все пользователи, так как выражение 1==1 всегда истинно. Вторя часть запроса блокируется оператором комментария ‘--‘. Чтобы избежать атаки подобного рода, необходимо проверять данный полученный из формы и удалять все, что может быть использовано для модификации SQL запроса. В случае работы с MySQL вы можете воспользоваться функцией mysql_real_escape_string().
    Основная цель слоев абстрагирования баз данных подобно PDO - чистая абстракция кода не связанная с базой данных, таким образом, теоретически появляется возможность переключения между базами MySQL, PostgreSQL или Oracle с минимальными модификациями программы. На практике все зависит от того на сколько ваш код привязан к определенной платформе, например к триггерам или хранимым процедурам, но если вы не зависите от них вообще, т.е. просто работаете с обычными запросами типа INSERT/UPDATE/DELETE – у вас не должно возникнуть никаких сложностей. Еще одно полезное свойство – предопределенные выражения, большинство слоев абстракции баз данных (включая PDO) реализуют этот механизм как возможность выполнения одинаковых запросов много раз, но с разными параметрами. Теперь, мы построим запрос по методологии PDO. За основу возьмем SQL запрос приведенный выше. Выражение разработаем с использованием меток-заполнителей:
    $sql = "INSERT INTO fruits (name, price) VALUES (?, ?)";
    и выполним запрос со следующими предустановленными параметрами, переданными в слой абстракции следующим образом:

    $sth = $dbh->prepare($sql);
    $sth->execute(array($fruit, $price));
    Когда данные обработаны в PDO, они напрямую передаются драйверу базы данных, либо запрос строиться безопасным образом внутри данного расширения. Как можно заметить, это простой путь решения проблемы с SQL инъекциями.
    Однако при использовании предопределенных выражений совместно с PDO необходимо знать некоторые нюансы, чтобы избежать неприятных ситуаций. Например, в MySQL клиенте некоторые запросы, составленные посредством предопределенных выражений, не могут быть выполнены[1], а так же они не используют кэш [1][2], что может замедлить работу вашего web-приложения.
    Гарантированная безопасность при использовании предопределенных выражений звучит успокаивающе, но разработчики не должны принимать PDO и другие слои абстракции\предопределенные выражения за абсолютную защиту от взлома. Любые входящие данные должны проверяться, PDO – дополнительная линия обороны. Это расширение не закрывает все множество уязвимостей, посредством которых может быть нанесен вред вашей информации, но в то же время, PDO неплохо справляется с вопросом предотвращения SQL инъекций.
    PDO является частью php начиная с версии 5.1.0. ( :exclaim: статью взял со scripts.by /немаэ/:exclaim:) [/SPOILER]
    если честно то сам кое чего неврубил.....I NEED HELP!:surprised: народ подклучайтесь :)
    ------Mr.Dream----
  8. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    .....немного отвлечёмся....И так mod_rewrite !!! Дада Именно он! :cool:
    [SPOILER="mod_rewrite PART 1"]Что такое mod_rewrite?
    mod_rewrite - это модуль сервера Apache для манипуляции (изменения) URL. Часто это означает получение запроса URL от посетителя и посылка ему содержания с другого URL. Например, посетитель вводит следующий URL в адресной строке браузера:

    view sourceprint?1 http://www.example.com/page.html

    Обычно Apache отправляет обратно пользователю содержание файла page.html. Однако с помощью mod_rewrite можно отправить содержание с другого URL, например такого:

    view sourceprint?1 http://www.example.com/another_page.html

    Важно понимать, что изменение адреса происходит внутри сервера Apache. Адресная строка браузера по прежнему будет показывать http://www.example.com/page.html, но сервер Apache отправит содержание страницы http://www.example.com/another_page.html. В этом заключается отличие от перенаправления HTTP, которое указывает браузеру посетить другой URL.

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

    Что можно делать с помощью mod_rewrite
    Модуль mod_rewrite позволяет создавать правила манипулирования адресами URL. Например, вы можете вставить значение полученное из запрашиваемого URL в новый URL, организуя динамическое перенаправление URL. Или можно проверить переменные сервера, например, HTTP_USER_AGENT (тип браузера), и изменять URL только если используется браузер, например, Safari, запущенный на iPhone.

    Вот несколько обычных функций, которые выполняет mod_rewrite:

    Создание "дружественных" адресов URL, которые маскируют "корявые" адреса URL. Например, вы можете маскировать с помощью отлично выглядящего адреса URL www.example.com/articles/my-article/ реальный адрес URL www.example.com/display_article.php?articleId=my-article. И каждый сможет использовать "дружественный" адрес URL вместо реального.
    Блокировать использование ссылок на изображения на вашем сайте. Чтобы остановить использование другими ресурсами изображений, размещенных на вашем сайте, можно использовать mod_rewrite для отправки ошибки "Forbidden", если ссылающийся URL не принадлежит вашему сайту.
    Перенаправление канонических адресов URL. Многие страницы доступны через несколько адресов URL — например, www.example.com/mypage.html и example.com/mypage.html. Вы можете использовать mod_rewrite постоянного перенаправления браузера на "правильный" URL, например www.example.com/mypage.html. Помимо прочего такое использование mod_rewrite гарантирует отображение правильного URL в результатат поиска.
    Исключение ошибки 404 в момент реорганизации вашего сайта. Например, вы переделываете сайт и переместили страницу www.example.com/myarticle.html по новому адресу www.example.com/articles/myarticle.html. С помощью mod_rewrite вы можете перенаправить www.example.com/myarticle.html на www.example.com/articles/myarticle.html , так что посетитель не получит ошибку 404 "не найдена" при посещении старого адреса URL. Благодаря гибкости mod_rewrite, можно легко создать правило, которое будет перенаправлять запросы на старые адреса URL на новые адреса.
    Как использовать mod_rewrite
    Для использования mod_rewrite, нужно создать директивы Apache для указания модулю, что нужно делать. Директивы - это простые конфигурационные установки. Часто директивы размещаются в файле .htaccess в корневой папке вашего веб сайта. Директивы применяются для всего сайта.

    Две самых важных директивы mod_rewrite:

    RewriteEngine: Включает/выключает механизм mod_rewrite для текущего запроса.
    RewriteRule: Описывает правило изменения адреса URL.
    Вот простой пример. Создайте файл .htaccess со следующим содержанием и разместите его на вашем сайте:

    view sourceprint?1 RewriteEngine on

    2 RewriteRule ^dummy\.html$ http://www.google.com/ [R=301]

    В данном файле задаются следующие установки:

    RewriteEngine on - включаем механизм mod_rewrite

    RewriteRule ^dummy\.html$ http://www.google.com/ [R=301] - перенапрявлем зарпросы к странице dummy.html на сайт Google, используя перенаправление 301.

    Если теперь открыть веб браузер и посетить страницу dummy.html на вашем сайте (например, введя в адресной строке http://www.example.com/dummy.html), то , если все было сделано без ошибок, произойдет перенаправление на сайт http://www.google.com.

    Если вы получаете ошибку 404, то вероятно на вашем хостинге не используется mod_rewrite. В данном случае надо обратиться к администратору хостинга.

    [/SPOILER]...:cool:
  9. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    [SPOILER="mod_rewrite part 2..."]Несколько примеров использования mod_rewrite
    Самый простой способ объяснить mod_rewrite - показать его использование при решении практических задач.

    Пример 1: исключение ошибки 404
    Иногда происходит изменение URL страницы на вашем сайте. Такое может произойти в момент реорганизации содержания. Если поисковый механизм или другие сайты ссылаются на старый адрес URL, то пользователь получит ошибку "404 Not Found", когда он попробует воспользоваться ссылкой.

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

    Следующий файл .htaccess перенаправит запросы на новый адрес URL:

    view sourceprint?1 RewriteEngine on

    2 RewriteRule ^my-old-url\.html$ /my-new-url.html [R=301,L]

    Правило RewriteRule работает так:

    ^my-old-url\.html$ - регулярное выражение, которому соответствует адрес URL для изменения. Шаблон означает: "соответствует началу адреса URL (^), за которым следует текст 'my-old-url.html', за которым следует символ окончания URL ($)." В регулярном выражении символ точки (.) означает соответствие любому символу, поэтому нужно использовать обратный слэш, чтобы указать, что нам нужна именно точка (\.).
    /my-new-url.html - вторая часть правила RewriteRule, которая описывает на что нужно менять. В данном случае это просто /my-new-url.html.
    [R=301,L]третья часть правила, которая содержит один или несколько флагов, помещенных в квадратные скобки. Флаги позволяют добавлять определенные опции или действия к правилу. В данном примере используется 2 флага: R=301 означает "использовать перенаправление 301 на новый адрес URL"; а L означает "последнее правило", или другими словами "остановить процесс обработки URL, если он соответствует правилу ".
    Пример 2: создание дружественных адресов URL
    Допустим, вы написали PHP скрипт display_article.php для вывода статей на вашем сайте. Вы можете ссылаться на статью с помощью следующего адреса URL:

    view sourceprint?1 http://www.example.com/display_article.php?articleId=my-article

    Данный адрес выглядит уродливо и запрос внутри него (?articleId=my-article) может смущать некоторые поисковые механизмы. Гораздо лучше использовать адрес URL такого вида:

    view sourceprint?1 http://www.example.com/articles/my-article/

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

    view sourceprint?1 RewriteEngine on

    2 RewriteRule ^articles/([^/]+)/?$ display_article.php?articleId=$1 [L]

    Описание правила RewriteRule:

    ^articles/([^/]+)/?$ - регулярное выражение, соответствующее любому URL в формате articles/(article ID)/. Оно гласит:"соответствует началу URL (^) , за которым следует текст articles/, за которым следует один или более символов, не являющиеся слэшем ([^/]+), за которыми может следовать слэш (/?), за которым следует символ окончания URL ($)". Обратите внимание на круглые скобки вокруг части шаблона [^/]+. Таким образом текст, соответствующей данной части, например, "my-article", сохраняется для дальнейшего использования.
    display_article.php?articleId=$1 - данная часть правила указывает серверу Apache использовать скрипт display_article.php , которому передается текст, соответствующий подшаблону [^/]+ из регулярного выражения первой части (например, "my-article"), в качестве параметра articleId. $1 называется обратной связью и хранит текст соответствующий подшаблону. Если регулярное выражение содержит еще один подшаблон в круглых скобках, то соответствующий ему текст будет храниться в переменной $2, и так далее.
    [L] - как и в предыдущем примере мы используем флаг для остановки дальнейшей обработки URL, чтобы не произошло изменение адреса другими правилами RewriteRule.
    Выше приведенное правило RewriteRule берет запрашиваемый URL в формате http://www.example.com/articles/my-article/ и преобразует его в URL вида http://www.example.com/display_article.php?articleId=my-article[/SPOILER]:cool::cool:
  10. xaxa15 Novice member


    Offline
    Message Count:
    46
    Likes Received:
    1
    капец!!! О_О просто офигенная тема!!! Мега супер больше спасибо автору!!! А то реально у се безопасности 0.

Share This Page

All rights reserved SocEngine.ru ©