У меня есть PHP приложение, которое принимает пользователь введенного $ ImageUrl и делает следующее:Закрепление строки перед Exec() ИНГ это
exec('convert "'.$url.'" -thumbnail 80x500 "images/out.jpg"');
Теперь, очевидно, я должен принять некоторые меры предосторожности с этим, чтобы остановить пользователь от выполнения произвольного кода. Например, если пользователь устанавливает $url
на ";rm -rf *;"
, это вообще не помогает.
Итак, для начала я должен отфильтровать "
так, чтобы независимо от того, что они набирают, они не могут убежать от своего ввода, являющегося параметром, до convert
. Но следует ли фильтровать также ;
? Я видел URL-адреса с точкой с запятой в них ... и в то время как точка с запятой действительно представляет опасность здесь, фильтрация "
все равно сохранит меня в безопасности? Но могут ли в них URL-адреса "
? И есть ли другие персонажи, за которыми я должен следить?
Возможно, вместо того, чтобы фильтровать символы, я должен попытаться их избежать. Так что я должен попытаться избежать каждого персонажа, который интерпретируется специально оболочкой? Или просто избегайте "
, поскольку все остальное является своего рода «предварительно сбежавшим», учитывая, что оно находится внутри двойных кавычек?
Извините за мое бессвязное смятение, я просто новый в этом и хочу оставаться в безопасности!
Спасибо,
Мала
Я не могу опустить часть запроса, так как некоторые сайты служат там изображения через script.php? Image = something.jpg – Mala
Тогда просто используйте filter_var и функцию escape-функции оболочки – Gordon