Ваш подход к безопасности неверен.
Не подходите к теме как «У меня есть пользовательский ввод, так как я могу предотвратить XSS». Скорее подходите к этому так: «У меня есть пользовательский ввод - он должен быть как можно более ограничительным, то есть ничего не пропускать». Затем, основываясь на этом, разрешите только то, что абсолютно необходимо - строки простого текста, тщательно очищенные для предотвращения чего-либо, кроме URL-адреса, и специальные необходимые символы только для URL-адресов. Тогда, как только это продезинфицировано, я должен только позволить изображениям. Проверить это сложно, потому что его легко обмануть. Однако, это все еще должно быть проверено на. Тогда, поскольку вы используете поле ввода, вы должны убедиться, что все, от сценариев JavaScript и escape-символов, HTML, XML и SQL-инъекций, все преобразовано в открытый текст и обезврежено и бесполезно. Считайте своих пользователей идиотами и хакерами - они будут вводить все неправильно и пытаться взломать что-то в вашем поле ввода.
Кроме того, у вас могут возникнуть юридические проблемы в отношении авторского права. Защищенные авторским правом изображения, как правило, не могут быть использованы на сайтах других людей без согласия и разрешения владельца авторских прав - обычно получаемых в письменной форме (или по электронной почте). Таким образом, предоставление пользователям возможности просто извлекать изображения с сайта может привести к тому, что они получат материалы, защищенные авторским правом, и разместят их на своем сайте без разрешения, что является незаконным. Некоторые сайты могут ссылаться на источник, другие требуют оплаты, а другие будут судиться с вами и приводить весь ваш домен к ответственности за нарушение авторских прав.