Я сделал свое первое веб-приложение, предназначенное для одного пользователя.
Для меня, как системного администратора, было бы проще заблокировать безопасность на стороне операционной системы, а не на стороне сеанса.
Я подумал о простом решении: разрешить порт 80 только для его MAC-адреса.
Это хорошая идея?
Какие недостатки меня должны волновать?
Я подумал о простом решении: разрешить порт 80 только для его MAC-адреса.
"Просто" как? В модели OSI ...
Номера портов TCP - уровень 4, сидя на вершине IP на уровне 3.
К тому времени, когда вы имеете дело с номерами портов TCP, вы больше не имеете дело с аппаратными адресами. Следовательно, смешивать эти два, даже если программное обеспечение позволяет это в первую очередь, серьезно не рекомендуется. И как было указано в комментарий к этому ответу по Крис МакКаун, если два хоста не находятся в одном сегменте сети, весьма вероятно, что любой MAC-адрес, который вы увидите, является адресом ближайшего маршрутизатора в любом случае, а не на машине конечного пользователя.
Также помните, что MAC-адреса легко изменить, даже если вы готовы согласиться с тем, что две машины должны находиться в одном сегменте сети. Если конечный пользователь по какой-либо причине получит другую сетевую карту, он почти наверняка будет иметь другой MAC-адрес. Сегодня многие сетевые карты имеют программно определяемые MAC-адреса. Плюс, конечно, предположим, что компьютер пользователя использует кто-то другой; должны ли они получить беспрепятственный доступ к приложению? Даже если это в основном хобби, я надеюсь, что нет.
В конце концов, я полностью согласен с комментарий Кафки к вопросу: почему нет просто используйте аутентификацию по имени пользователя и паролю?
Если вы не хотите самостоятельно выполнять аутентификацию в коде, и особенно если вам не нужно разделять доступ на основе учетных данных (хотя это все еще очень возможно), просто переложите аутентификацию на веб-сервер через например .htaccess.
Это очень плохая идея. Mac-адрес можно легко изменить. Более того, сетевая фильтрация - это лишь малая часть защищенных систем. Его основная цель - ограничить связь допустимым трафиком (предотвратить получение созданных пакетов, трафика из / в некоторые сети и т. Д.)
Вы должны обеспечить безопасность на всех уровнях стека системы / приложения.