Задать вопрос
  • Что конкретно делает эта функция mysqli_real_escape_string()?

    SagePtr
    @SagePtr
    Еда - это святое
    Эта функция для тех, кто не освоил подготовленные выражения и продолжает конструировать SQL-запросы конкатенацией строк. Добавляет бэкслэши перед символами вроде кавычек и переносов, чтобы доброумышленник смог невозбранно сохранять в ней кавычки (одиночные и двойные), переходы на новую строку (как CR, так и LF), \Z, бэкслэши, символы с нулевым кодом, и не смог "нечаянно" совершить SQL-укольчик с галоперидолом, при условии, что автор кода умеет правильно пользоваться этой функцией, всегда вручную обрамляет полученный результат в одинарные кавычки, а также не использует расово неверных кодировок, способных трактовать бэкслэш как часть предыдущего многобайтного символа на радость доброумышленнику.

    Дисклеймер для зануд:
    Функция mysqli_real_escape_string принимает на вход строковой тип данных. Крайне не рекомендуется передавать туда числа, булевы переменные, массивы, объекты, совать туда пальцы, другие части тела, животных, детей, беременных женщин, веганов, инвалидов, ветеранов войны, пассажиров с детьми, оружие, взрывчатые вещества, радиоактивные вещества, химические вещества, наркотики, лекарственные препараты, продукты питания, отходы жизнедеятельности, детскую порнографию, суицид, биткойны, экстремистские материалы, фашистскую символику, религиозную символику, политическую символику, чиновников, депутатов госдумы, президента, иллюминатов, лидера всемирного заговора лично, а также собственную самооценку. Несоблюдение этих правил может стоить вам здоровья (как физического, так и психического), жизни, счастья, хорошего настроения, пенсии, душевного равновесия, целостности скреп, баланса во вселенной. С целью надзора за соблюдением правил к вам был приставлен персональный товарищ майор, отслеживающий каждое ваше действие, а также каждое ваше бездействие. Запрещено передавать товарища майора в функцию, так как это может привести к коллапсу солнечной системы и к гибели человечества. Мы предупредили. Не стоит вскрывать эту тему.
    Ответ написан
    23 комментария
  • Как сделать приватный чат на Node JS + Socket.io?

    SagePtr
    @SagePtr
    Еда - это святое
    Либо переданное приватное сообщение просто передавать на сокет конкретного пользователя, а не всем участникам.
    Ответ написан
  • Как работает этот код?

    SagePtr
    @SagePtr
    Еда - это святое
    Вкратце - у нас есть функция, принимающая три параметра - текст сообщения и два коллбэка.
    Функция показывает сообщение с кнопками "да" / "нет" (это зависит от браузера, каждый оформляет сообщение по-своему, текст кнопок и расположение тоже могут отличаться), и если пользователь тыкнет да - дёргает первый колбэк, если тыкнет нет - дёргает второй колбэк.
    А в колбэки мы передаём две функции, каждая из которых показывает сообщение (разные).
    Ответ написан
    Комментировать
  • Зачем существует "дырявая" клиентская oAuth авторизация?

    SagePtr
    @SagePtr
    Еда - это святое
    то мы как владельцы сайта, можем подделать это окно и перехватывать данные пользователя
    В случае с серверной авторизацией - мы как владельцы сайта тоже получаем этот токен и можем как угодно использовать его пользователю во вред.
    При авторизации нашего приложения в соцсети пользователю выдаётся список информации, к которому наше приложение будет иметь доступ, и пользователь должен быть готов к тому, что нечистые на руку владельцы сайта могут эти данные тайно собирать и использовать в плохих целях.
    Ответ написан
  • Есть бесплатный хостинг для Node.js приложения работающее со сторонними API?

    SagePtr
    @SagePtr
    Еда - это святое
    https://glitch.me есть, нечто наподобие codepen, но для nodejs-приложений. Возможно, для ваших задач подойдёт.
    Ответ написан
    Комментировать
  • Ответ не является допустимым ответом JSON?

    SagePtr
    @SagePtr
    Еда - это святое
    Возможно, вы используете не строгий синтаксис. JSON требует строгий - это все имена полей должны быть в двойных кавычках, должны отсутствовать лишние запятые после последнего элемента объекта/массива и т.п.
    Ответ написан
  • Как указать корневой адрес для express?

    SagePtr
    @SagePtr
    Еда - это святое
    В nginx указать в конце адреса proxy_pass слэш:
    proxy_pass http://127.0.0.1:3000/;
    Отличается тем, что если в proxy_pass указать в uri путь (в данном случае - путь /) - то nginx будет выполнять преобразование путей и /api/ отражать на /, а не передавать uri запроса как есть.
    Ответ написан
    Комментировать
  • Можно ли продать логотип, где использован чужой шрифт? нужна лицензия на него?

    SagePtr
    @SagePtr
    Еда - это святое
    Бесплатный - понятие растяжимое, может быть бесплатным для коммерческого использования, а может быть только для некоммерческого.
    Ответ написан
    Комментировать
  • Как убрать незашифрованную страницу?

    SagePtr
    @SagePtr
    Еда - это святое
    Во-первых, редирект с HTTP на HTTPS настроить, как посоветовали выше, а во-вторых, добавить заголовок Strict-transport-security, чтобы браузеры после первого открытия сайта запомнили это и при последующих открытиях сайта автоматом подключались по HTTPS, не дёргая лишний раз HTTP.
    Ответ написан
    Комментировать
  • Как отправить несколько вложений PHP mail?

    SagePtr
    @SagePtr
    Еда - это святое
    Повторять этот фрагмент кода несколько раз для каждого отдельного файла:
    $message_part .= "--$boundary\n"; 
      $message_part .= "Content-Type: application/octet-stream\n"; 
      $message_part .= "Content-Transfer-Encoding: base64\n"; 
      $message_part .= "Content-Disposition: attachment; filename = \"".$filename."\"\n\n"; 
      $message_part .= chunk_split(base64_encode($file))."\n";

    А ещё лучше - вынести в отдельную функцию. Ну или воспользоваться уже готовым PhpMailer, как выше посоветовали, и не изобретать свой велосипед.
    Ответ написан
    Комментировать
  • Что не так при подключение к MongoDB?

    SagePtr
    @SagePtr
    Еда - это святое
    Комментировать
  • Зачем нужны data-аттрибуты, если можно поставить любые?

    SagePtr
    @SagePtr
    Еда - это святое
    Удобный доступ через массив dataset.
    Да и аттрибуты через data- гарантируют то, что браузер не будет их воспринимать как-то по-особенному и разработчик вправе сам вкладывать в них смысл, не боясь ничего поломать (если аттрибуты с таким же именем будут что-то значить для браузера).
    Ответ написан
    Комментировать
  • Слишком быстрый fps. Как сделать движения игрового объекта более медленным?

    SagePtr
    @SagePtr
    Еда - это святое
    Первое правило - никогда не привязывайте скорость к FPS. Мне попадалась игра, которую было невозможно пройти на медленном железе, потому что скорость игрока по каким-то причинам привязывалась к FPS, а скорость игровых событий - к времени, в итоге если FPS был в районе 30 - то игрок попросту не успевал в тех местах, где нужно было на скорость что-то сделать, а запас времени не давался.
    Да и просто неприятно, когда всё начинает медленно шевелиться, пропуск кадров намного лучше, так как не замедляет игру, а только картинку ухудшает.
    Ответ написан
    Комментировать
  • Всем привет, кто может сказать, почему упали позиции сайта?

    SagePtr
    @SagePtr
    Еда - это святое
    Роскомпозор его случайно не заблочил?
    Ответ написан
    Комментировать
  • Возможно ли запретить скролл, но оставить полосу прокрутки?

    SagePtr
    @SagePtr
    Еда - это святое
    К примеру, сделать полосу прокрутки div'ом, или на самый худой конец, нарисовать её на canvas. И изменять положение/перерисовывать при определённых событиях.

    %D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D0%
    Ответ написан
    Комментировать
  • Взломали впс и выкачали 30 терабайт трафика, куда он ушел?

    SagePtr
    @SagePtr
    Еда - это святое
    пароль был что-то вроде тест123, ибо было влом вводить сложный пароль в командной строке
    А что мешало настроить аутентификацию по ключу, а пароли по SSH вообще отключить? Тогда пароли не пришлось бы вводить, а файл с ключом спереть гораздо сложнее, чем пароль.
    Ответ написан
    4 комментария
  • Как запретить пользователям доступ к txt файлу?

    SagePtr
    @SagePtr
    Еда - это святое
    Безопаснее - держать файл за пределами корня веб-сервера, ибо вдруг на сервере будет nginx перед апачем, а там будет настроена отдача статических файлов мимо апача. В итоге сервер будет этот файл отдавать, не проверяя .htaccess.
    Ответ написан
    Комментировать
  • Как убрать C:\fakepath\ при выводе URL из базы данных?

    SagePtr
    @SagePtr
    Еда - это святое
    Я обычно никогда не смотрю на имя файла из переменной name (куда браузеры могут подставить любое имя и в худшем случае передать туда какую-то дичь), а вычисляю хэш от содержимого файла и называю файл по этому хэшу (+ расширение, если оно нужно, но обычно не требуется). В итоге убиваю двух зайцев - во-первых, имя файла гарантированно не содержит никаких запрещённых символов, во-вторых, обеспечивается дедупликация (если двое загрузят одинаковый файл - то физически он будет в одном экземпляре, но при удалении нужно учитывать счётчик ссылок и физически удалять только тогда, когда других записей, ссылающихся на файл, больше нет).
    Ответ написан
    Комментировать
  • Ram диск для файла подкачки, имеет ли смысл?

    SagePtr
    @SagePtr
    Еда - это святое
    Смысл файла подкачки - добавить памяти, когда физическая память закончилась. Располагать его в физической памяти - это глупо, всё равно, что взять две коробки (ради большего объёма) и одну положить в другую.
    Ответ написан
    1 комментарий