Предположим, что у меня есть поле формы в моем HTML, а его свойство name
- message
. В эту форму пользователь (предположительно) войдет в тело письма. Это письмо будет отправлено из браузера с помощью Javascript. Как я это делаю, используйте window.open()
на строке mailto:
.Javascript Injection via mailto:
function validateAndSend(form) {
var body = form.message.value;
window.open("mailto:[email protected]?body=" + body);
}
Этот подход работает для меня, но меня беспокоит его безопасность. Я слышал о SQL-Injection, , и мне интересно, относится ли это к моей ситуации.
Возможно ли злоумышленник ввести что-то в поле формы, которые будут наносить ущерб такой, как
- кражи любого вида информации
- Исполнительное свой собственный код Javascript
Что я пробовал
- Я добавил чеки перед отправкой электронного письма, чтобы узнать, содержит ли текстовое поле хотя бы один символ, чтобы избежать больших объемов спама .
- Несколько тестовых примеров, где я добавляю различные теги
<script>
во входной текст, пытаясь запустить свой собственный код с помощью ввода. Эти вредоносные скрипты просто отображаются в теле письма, не затрагивая ничего.
Am I уязвима для Javascript инъекции через использование mailto:
?
Из вашего примера, единственное, что пользователь сможет сделать, изменив источник, - это изменение заполненных значений в почтовом приложении по умолчанию который будет запущен браузером. Помимо этого, я не вижу, как проверка в веб-форме служит любой цели, поскольку проверка не будет присутствовать в их почтовом приложении. –