zvermafia
@zvermafia
WebDev

Считается ли это за уязвимостью и можно ли пронести атаку и взломать сайт?

В форме поиска по сайту есть такое поле:
<input type="text" id="input_id" name="val" value="">

Если в эту поле написать что то вроде этого: " placeholder="crack
То это поле после запроса будет выглядеть так:
<input type="text" id="input_id" name="val" value="" placeholder="crack">

Считается ли это за уязвимостью и можно ли пронести атаку и взломать сайт?
  • Вопрос задан
  • 942 просмотра
Решения вопроса 2
sim3x
@sim3x
<input type="text" id="input_id" name="val" placeholder="crack_start">
<script>
console.log('Knock-knock')
alert('u h4z b33n cr4ck3d')
<"crack_end">

https://www.owasp.org/index.php/Cross-site_Scripti...
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Да, это уязвимость, нельзя вставлять данные напрямую в верстку.
Я использую такой код для подготовки текста для вставки в атрибуты:
strtr(
	$text,
	[
		'&'		=> '&amp;',
		'"'		=> '&quot;',
		'\''	=> '&apos;',
		'<'		=> '&lt;',
		'>'		=> '&gt;'
	]
)

Но это уже перед вставкой в атрибуты, а так данные по нормальному нужно фильтровать при получении от пользователя, я для этого использую функцию xap()отсюда
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Faha1998
Full stack
А можете мне объяснить,как через placeholder ломать сайт?:D,ведь по сути это ничего не дает
Ответ написан
AsviS
@AsviS
начинающий
через placeholder cломать сайт не получиться!
а что бы не было XSS то просто фильтруйте переменные хоть по минимуму

strip_tags — убирает html теги.
htmlspecialchars — преобразует спец. символы в html сущности.
Так вы защитите себя от XSS атаки, помимо SQL инъекции.
Если же вам нужны html теги, но только как для вывода исходного кода, то достаточно использовать:
$input_text = htmlspecialchars($_GET['input_text']);
$input_text = mysql_escape_string($input_text);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы