• Как правильно удалить вирус с сайта?

    Serhioromano
    @Serhioromano
    Web Developer
    Нужно не вирус устранить а уязвимость. Для того что бы дать рекомендации нужно знать что за сайты. Самописанные или на джумле или вордпресс? У вас выделенный сервер, виртуальный хостинг или ищи что? Какой уровень доступа? Рут?

    Нужно узнать как злоумышленники это делают. Где их точка входа.

    Но в основном, нужно все директори сделать запрещенными для записи из под апача или РНР. Так же все файлы. Если ваш сайт имеет один файл index.php (как должно быть) то нужно добавить htaccess что ни какие другие РНР файлы запускать нельзя. Если у вас не один РНР файл загрузочный, то советую сменить движек сайта.

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

    Serhioromano
    @Serhioromano
    Web Developer
    Ссылка же в браузере. Значит нужно делать средствами браузера.

    На чистом яаваскрипте на нажатии кнопки

    <a href="javascript:void(0)" click="sendPost()">Linkk</a>
    <script>
    function sendPost() {
        var xhr = new XMLHttpRequest();
        var body = 'name=' + encodeURIComponent(name) +
          '&surname=' + encodeURIComponent(surname);
    
        xhr.open("POST", '/submit', true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.send(body);
    }
    </script>


    Но скорей всего у вас наверно есть jQuery или еще какая библиотека так что можно использовать $.ajax

    Если вы хотите осуществить переход при нажатии, можно создать спрятанную форму и сабмитить ее

    <form href="/my/url" type="post" id="myForm">
        <input type="hidden" name=name" value="Sergey" />
    </form>
    <a href="javascript:void(0)" click="document.getElementById('myForm').submit()">Linkk</a>
    Ответ написан
  • Как отправить post запросом сообщение от группы ВКонтакте?

    Serhioromano
    @Serhioromano
    Web Developer
    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func main() {
        req, err := http.NewRequest("GET", "http://****", nil)
        if err != nil {
            log.Print(err)
            os.Exit(1)
        }
    
        q := req.URL.Query()
        q.Add("api_key", "key_from_environment_or_flag")
        q.Add("another_thing", "foo & bar")
        req.URL.RawQuery = q.Encode()
    
        fmt.Println(req.URL.String())
        // http://***?another_thing=foo+%26+bar&api_key=key_from_environment_or_flag
    }
    Ответ написан
    9 комментариев
  • Как подставить ID записи в Модальное окно?

    Serhioromano
    @Serhioromano
    Web Developer
    <a class="delobj" href="javascript:void(0)" data-obj="13220">
        <img src="/img/icon_delete_object.png">
    </a>
    function($){
         $('.delobj').on('click', function(){
              if(confirm('Sure?')) {
                   window.location.href = 'handlers/delete_object.php?id_obj=' + $(this).attr('data-obj')
              }
         })
    }(jQuery)


    Код не дебажил нбрал прям тут. Могут быть ошибки или опечатки, он идея понятно должна быть.
    Ответ написан
    Комментировать
  • Как реализовать механизм бана и удалить сессию пользователя?

    Serhioromano
    @Serhioromano
    Web Developer
    Не совсем понятна архитектура приложения. Вроде РНР а предполагается Аякс.

    Если в вас РНР, то нужно просто при перезагрузке страницу каждый раз проверять пользователя. Или вы хотите что бы уже открытая страница закрылась? На сколько это важно в РНР. Пусть смотрит, следующая перезагрузка и все, больше доступа нет. При перезагрузке сообщение и показать что доступа нет.
    Ответ написан
  • Можно ли добавить в gitignore отдельные строки?

    Serhioromano
    @Serhioromano
    Web Developer
    Create your own log or vardump function that echo data only in development

    mylog function(data) {
        if(getEnv("APP_ENV") == 'dev') {
            console.log(data)
        }
    }


    Это просто идея, функция может быть сложенй. Она может писать в файл, или в консоль. Или при разрбоке в консоль, а на продакшене в файл.

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

    Одной переменной можно потом переключать что показать а что нет. Например ва нужно отладить кусок кода котоый писали не вы. Что делать? Расставлять логи опять, потом удалять? Нет, просто переключится в режим логера и все видно.
    Ответ написан
    Комментировать
  • Как настроить 2 nginx в контейнере и на хосте?

    Serhioromano
    @Serhioromano
    Web Developer
    Если ты делаешь контейнерами то веб приложение тоже делай контейнером.

    Во первых такие задачи решать самостоятельно геморой и очень дорого. Лучше воспользоваться готовыми решениями например AWS ECS. Там легко развернуть сколько угодно контейнеров, можно даже не на выделенной машине а в кластере что повысит надежность. Там уже есть балансировка, есть бридж, так что хостовый айпи становится родительским для всех контейнеров. Создаешь доменное имя на один и тот же айпи, а в гникс просто алиасы меняешь.

    Ну а как ответ на вопрос, что бы запустить 2 веб сервера на одной хост машине нужен лоад балансер. Каждый сервер запускается на разном порту, а в зависимости от трафика на какой домен, лоад балансер перенаправляет.

    Нужно так же правильно настроить сеть. В одном ответе подобной темы не перекроешь.

    Но даже если ты все это сделаешь, все еще остаётся куча ботел неков. Что если ты захочешь CI\CD. Своими силами поднять подобное тоже не дешево. А что если захочешь масштабирование? Репликацию? Резервирование? Все сам будешь писать?

    А на AWS через 2-3 часа у тебя уже будет рабочий проект работать за 20$++ и более в месяц.
    Ответ написан
  • Почему может не работать подключение к базе данных AWS RDS?

    Serhioromano
    @Serhioromano
    Web Developer
    Нельзя подключится к RDS клиентом с рабочего стола напрямую. Используйте SSH тунель в настройках воркбенча через свой EC2 инстанс

    5e8dca411dde6312024358.png
    Ответ написан
    1 комментарий
  • Как скачать файл .htm с сервера при помощи JavaScript, используя для этого протокол FTP?

    Serhioromano
    @Serhioromano
    Web Developer
    В имени функции XMLHttpRequest видно что это запрос HTTP а не FTP. Хотя некотороя документация например Мозила, упоминает что подключаться к FTP можно, в реальности ни одни браузер данную спецификацию не поддерживает на уровне исполнителя яваскрипт.

    Другими словами ответ на твой вопрос как - никак.
    Ответ написан
    Комментировать
  • Как подключиться к удаленному рабочему столу с Мака на Вин, через Wi-Fi?

    Serhioromano
    @Serhioromano
    Web Developer
    Во первых в App Store есть Microsoft Remote что бы подключиться по удаленному рабочему столу.

    https://apps.apple.com/us/app/microsoft-remote-des...

    Но для корректной работы на стороне винды, нужно разрешить пользователю удаленный доступ и вообще эту фичу включить.

    Но что бы не парится, можешь поставить TeamViewer на винду, У тебя будет постоянный пароль, и ты сможешь подключаться в любое время.
    Ответ написан
  • Какой смысл в длине поля, например INT(..), VARCHAR(..) и других?

    Serhioromano
    @Serhioromano
    Web Developer
    Все зависит от вашей базы. Если у вас будет 10-100 000 записей, но нет смысла уделять внимание длинне полей. Если у вас 1 000 000 записей в день и больше, то смысл есть. Если у вас база в облаке, то смысл тоже есть.

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

    На некоторых облачных базах есть лимиты на размер базы. Да и сами подумайте допустим у вас таблица 100гб. Прочитать такой файл дольше чем файл в 10гб. Хотя если есть индекс и известно от куда нужно читать то будет так же быстро.
    Ответ написан
    2 комментария
  • Насколько нужно неакутуальные данные выносить в отдельные таблицы MySQL?

    Serhioromano
    @Serhioromano
    Web Developer
    Здесь нужно знать ваши мотивы. Медленно работает? Просто хотите сделать правильно? Сколько записей за 6 месяцев попадет в таблицу? Сколько запросов к таблице в час? Какое среднее время обработки запроса?

    Ведь возможно все можно решить простой оптимизацией. Возможно созданием реплик. Возможно денормализацией базы, или наоборот.
    Ответ написан
    Комментировать
  • React приложение правильнее создавать через create-react-app или нет?

    Serhioromano
    @Serhioromano
    Web Developer
    Если подобный скелетон вас всем устраивает то да. Если вы хотите с 0 все настроить и поднять сам, то нет.

    Я бы пошел способом сделать все самому, хотя бы первый раз. Тогда появится понимание что от чего зависит. А когда создание проекта станет рутиной, можно использовать и команду. Но в этом случае уже будете знать куда идти что бы быстро все поправить под себя.

    Ну или есть нет задачи учить саму технологию, а просто попробовать что бы оценить, тогда можно тоже через cli создать.
    Ответ написан
    Комментировать
  • Обновление php приложения на symfony?

    Serhioromano
    @Serhioromano
    Web Developer
    Все эти системы миграции это головная боль. Стоит в одном месте произойти сбою, и уже не когда ты не сможешь нормально ни одной миграции запустить.

    Я сделал так, при упаковке приложения, я делаю слепок базы в формате JSON. там данные о полях, ключах и отношений. При установке, я делаю такой же слепок с текущей базы, смотрю разницу и автоматически генерю запросы типа ALTER и привожу базу к необходимой форме.
    Ответ написан
  • Как хранить в БД интервалы дат/времени?

    Serhioromano
    @Serhioromano
    Web Developer
    +1 - 2 поля datetime
    Ответ написан
    Комментировать
  • Не могу работать с php вылазит ошибка когда запускаю серв на node что делать?

    Serhioromano
    @Serhioromano
    Web Developer
    Выполни

    npm install php-node --save
    Ответ написан
    Комментировать
  • Как правильно организовать подгрузку большого количества текста?

    Serhioromano
    @Serhioromano
    Web Developer
    Извините, не совсем ответ на вопрос, но почему не использовать готовые решения как например Gitbook? Там простой интерфейс писать книгу. В браузере все разбито по разделам и подгружается переходами по страницам и автоматически генерируется PDF, DJVU.

    Тогда ты сможешь сконцентировать свои усилия на написании книги, самого содержимого а не тем как ее грузить и т.д.
    Ответ написан
  • Как реализовать хранение картинок на другом сервера?

    Serhioromano
    @Serhioromano
    Web Developer
    Я обычно реализую с использованием CDN AWS S3. Удобно, хороший API, работает быстро, не создает нагрузки на диски и скорость самого сайта.

    Поднять субдомен можно, но нужно с дргого диска читать картики. Если они будут читаться с тогоже диска, то разницы в том будь это тот же или поддомен нет.
    Ответ написан
    2 комментария
  • Как вывести случайный ответ?

    Serhioromano
    @Serhioromano
    Web Developer
    var answer = ['Да', 'Нет'];
    return answer[Math.round(Math.random())];
    Ответ написан
    1 комментарий