Я пытаюсь предотвратить инъекцию xss. Поэтому, прежде чем я отправить форму, Javascript функция называетсяjavascript string заменить эквивалент на php?
function validatefield(id) {
var description = document.getElementById(id).value;
description = description.replace(/[\"\'][\s]*javascript:(.*)[\"\']/gi, "");
description = description.replace(/script(.*)/gi, "");
description = description.replace(/eval\((.*)\)/gi, "");
document.getElementById(id).value=description;
}
Я wonderng, если есть способ сделать то же самое в PHP, прежде чем вставить в MySQL? если они обойдут функцию validatefield.
Благодаря
Портирование этого кода javascript на php не является хорошей стратегией для предотвращения XSS. Существуют способы ввода javascript в html, которые не покрываются вашей логикой, например. атрибут onclick. Правильный (и намного более простой!) Способ заключается в том, чтобы обернуть ваши пользовательские данные в 'htmlspecialchars()' как раз перед выводом в любой html-контекст. – Asaph
Но htmlspecialchars не подходит, если вы хотите разрешить некоторый HTML. –
@Matthew Flaschen: Конечно, правда. Хотя у меня не было впечатления, плакат собирал HTML именно через его форму. Он не упоминает об этом нигде в вопросе. В случае сбора HTML-данных я бы пошел с использованием белого списка и разделил все не одобренные теги и атрибуты. – Asaph