Допустим, я делаю простую веб-страницу, которая просто говорит "привет мир" без кнопок, форм, ничего, кроме простого текста. Теперь я перенаправляю частный IP-адрес этого компьютера на маршрутизатор, отправляющий через порт 80 сервера, так что теперь пользователь может просто ввести мой общедоступный IP-адрес в любой точке мира и прочитать мой "привет мир". Каковы риски безопасности? Я знаю о многих рисках безопасности в веб-программировании, таких как атаки включения, атаки SQL-инъекций, клик-джекинг и атаки target = "_ blank", но этот сайт hello world представляет собой простой текст. Какие тогда риски?
2 ответа
Если вы прослушиваете / привязываете порт 80, то вам нужна возможность CAP_NET_BIND_SERVICE (для привязки к порту <1024). Традиционно это разрешено только пользователю root / admin ( здесь большая проблема безопасности).
Однако в современном Linux вы можете запускать его как непривилегированный пользователь специального назначения и предоставить серверу именно такую возможность.
Вы также можете настроить брандмауэр для ограничения количества соединений в секунду. (чтобы уменьшить DOS).
В Linux вы можете поместить его в контейнер (например, в Docker), чтобы ограничить используемые системные ресурсы.
Установив эту переадресацию, вы позволили интернет-хостам напрямую подключаться к вашей машине.
Таким образом, вы расширили поверхность прямой атаки тем, что может предложить веб-сервер. Если есть ошибка, которая может быть вызвана простым запросом, эта ошибка не подвергается прямым атакам. Кроме того, вы могли бы предоставить дополнительную информацию о вашей системе возможным злоумышленникам в зависимости от информации, отправляемой веб-сервером в других заголовках.
Примером такой информации может быть заголовок Server
который будет включать информацию об используемом серверном программном обеспечении, или заголовок X-Powered-By
который может включать информацию об используемой версии PHP и возможной ОС.