Согласно стандарту HTTP1.1 , запрос URL-адресов с помощью GET
(метод, используемый для получения изображений) не должен приводить к каким-либо действиям, таким как выход из системы.Следовательно, вам не нужно ограничиваться URL-адресами с .jpg
в конце, и, как правило, это плохая идея, поскольку существуют другие форматы изображений, а URL-адрес в целом не связан с типом содержимого.
Более того, если запрос URL меняет состояние сервера vulnerable.net
, эту уязвимость подделки межсайтового запроса можно использовать в любом случае, настроивпользовательский сервер, который 302-перенаправляет http://evil.com/img.jpg
на http://vulnerable.net/logout
.
К вашему сведению, если вы действительно хотите заменить только URL-адреса, заканчивающиеся на .jpg
, вы можете просто вставить его в группу:
$text = preg_replace("@\[img\](.*\.jpg)\[\/img\]@si",
"<img src=\"$1\" border=\"0\" />", $text);
Но это не механизм безопасности, и он дает сбой, если браузер (или агрессивно кэширующий прокси, или антивирусный сканер, или ...) предварительно выбирает URL-адреса.GET
запросы не должны приводить к каким-либо действиям.