Я планирую запустить веб-сайт, который будет содержать несколько алгоритмов шифрования, написанных на Javascript. Я не хочу, чтобы эти js-файлы передавались кому-либо с IP-адресом за пределами США, так как я чувствую, что могу нарушать законы об экспорте (серверы, по крайней мере, вначале, будут в США). Я знаю, что существует множество способов подделать IP-адрес, чтобы обойти это, но я считаю, что это лучший вид ограничения, который я мог бы реально реализовать, и что это доказывает намерение не передавать данные за пределы страны (комплексная проверка).
По разным причинам я не хочу ничего шифровать на стороне сервера. Это исключено.
Я мог бы написать код на стороне сервера для геокодирования IP-адреса и либо вернуть JS, либо нет, но я думаю, что могут быть некоторые настройки конфигурации, которые я могу установить в IIS. Не хочу переписывать колесо, если что-то уже есть.
Можно ли настроить IIS для ограничения доступа к определенным файлам на основе IP-адреса и геокодирования? Я слишком параноик?
Вы можете использовать IIS «Ограничения IP-адресов и доменов», но ваш список диапазонов IP-адресов для запрещенного списка за пределами США или разрешенного для внутри США будет довольно большим, и его придется сканировать для каждого запроса. Если вы не ожидаете большого трафика, это может не быть проблемой.
В IIS нет встроенных возможностей геолокации, вам нужно будет задействовать какую-то службу геолокации из HttpModule в вашем приложении, и вы можете какое-то время кэшировать ваши поисковые запросы для тех же IP-адресов или диапазонов IP-адресов.
Почему бы не разместить эти js-файлы в службе хранилища Azure или AWS S3 за пределами США? Вы не будете ничего «экспортировать» из США, просто будете ссылаться на них из других мест?