• Достаточна ли защита сайта php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Что такое "файл с защитой от sql-инъекций"? Это звучит как "я никогда не заражусь спидом, потому что когда я занимаюсь сексом, то в соседней комнате у меня специальная тумбочка с кучей презервативов". Презерватив надо использовать в процессе, а не держать в отдельной тумбочке. Только тогда он поможет.

    "хотя это можно прописать и в .htaccess" - это совсем какой-то идиотизм, причем заведомо вредный

    "Всё, начиная с php авторизации, защищено от прямого доступа" - это тоже, хотя просто бесполезный

    ".htaccess. На самом деле это очень полезный файл" - полезность файла .htaccess сильно преувеличена. Это скорее костыль для калек, которые не умеют настраивать систему правильно. Не говоря уже о том, что в современных веб-серверах такого файла вообще нет.

    В целом, из того что описано, помимо нескольких бессмысленных телодвижений, проблемы я здесь вижу по трем пунктам
    1. Какая-то странная "защита от инъекций", которая скорее всего ни от чего не защищает, а только портит данные
    2. Большой вопрос, как именно "генерируется" код доступа.
    3. Вообще не упомянута защита от XSS. Ну и CSRF если уж на то пошло

    Плюс вероятные дыры в конкретной реализации, когда на словах вроде правильно, но в коде реализовано криво. Типа location в качестве защиты страниц от доступа. Ну и в целом надо код видеть. Может быть там какое-нибудь гениальное incude $_GET['page'];
    Ответ написан
    3 комментария
  • Как правильно динамически обновлять данные?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    Наиболее простым решением будет перезагружать ваш блок с помощью .load.
    Примерно так
    setInterval(function() { 
        $('#table').load(window.location.href + ' #table > .row' )
    }, 60000)


    Что же касается сложного пути, то тут надо будет сделать следующее:
    1. Научить сервер отдавать только данные, а не рисовать таблицу. Да, напрямую со стороны клиентского Javascript'а в базу не постучишься, это должна делать серверная часть вашего приложения
    2. Делать ajax-запрос, получать эти данные и вставлять из в таблицу
    Ответ написан
    Комментировать
  • Как правильно создать шаблон пустого нового базового проекта?

    tmaslov22
    @tmaslov22
    Backend developer
    Не стоит изобретать велосипед) Посмотри как этот вопрос решили авторы фреймворков laravel, symfony
    Ответ написан
    1 комментарий
  • Как укоротить синстаксис деструктуризации?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Деструктуризацию долой, сделать массив имён свойств:

    const payload = {
      data: Object.fromEntries([
        'раз свойство',
        'два свойство',
        'три свойство',
      ].map(n => [ n, this[n] ])),
    };
    Ответ написан
    2 комментария
  • Как укоротить синстаксис деструктуризации?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    С деструктуризацией неизбежно двойное повторение всех имен свойств — то, чего вы, как я понял, хотите избежать.

    Можно вспомогательной функцией:
    const pickProps = (object, ...keys) => keys.reduce((acc, c) => ({ ...acc, [c]: object[c] }), {});

    использование
    let payload = {
      data: pickProps(
        this,
        'customer',
        'tool_type',
        'tool_brand',
        'tool_model',
        'tool_serial_code',
        'defect_type',
        'defect_description',
        'request_type',
        'request_description',
        'status'
      ),
    }
    Ответ написан
    2 комментария