Большинство причин для проверки не применяются; IP будет получен из свойства Request, построенного из информации в базовом соединении, которое уже было проверено в значительной степени и, следовательно, в то время как оно могло быть подделано, его нельзя было подделать, чтобы быть тем, что на самом деле не является IP-адресом ,
Однако две причины остаются. Во-первых, недоверие к безопасности - это не только намерение, но и успех; мы можем доверять тому, что слой дает нам IP-адрес, чтобы не преднамеренно давать нам что-то еще, но мы не можем доверять ему, чтобы он был успешным в своих собственных проверках - может быть, когда-нибудь обнаружится эксплойт, в котором трюки этого слоя передаются другому. Другое заключается в том, что в зависимости от того, что вы собираетесь делать с этим IP-адресом, возможно, поддельный IP-адрес может нанести некоторый ущерб (это требует проверки за пределами просто проверки IP-адреса IP).
Контр-аргумент состоит в том, что если все, что вы делаете, регистрируется, то до тех пор, пока вы используете обычные подходы к обеспечению форматирования данных, регистрация вредоносного кода сама по себе не сделает ничего противного.
Контр-аргумент-аргумент заключается в том, что, если единственное, что вы делаете, это регистрация сегодня, это может быть не так позже в жизни проекта.
В связи с этим, валидация разумна, хотя я не буду волноваться, если увижу, что кто-то не делает этого.
Позаботьтесь о том, чтобы убедиться, что ваша валидация принимает адреса IPv6; они все еще достаточно редки, что ваше тестирование может не использовать, но достаточно распространено (и становится все более распространенным), что вы попадете в их производственный код. Вы не хотите блокировать законных пользователей, потому что вы сталкиваетесь с IPv6-адресом.
Подтвердить сейчас, не беспокоиться позже. – Stephen
Как этот IP-адрес получен? –
Это в C#, поэтому я использую Request.UserHostAddress –