Это может быть короткая тема или длинная тема, в зависимости от того, что вы подразумеваете под «безопасным»? Что вас беспокоит здесь?
Посмотрите на этот базовый пример:
http://jsfiddle.net/dimitar/tr74c/
По сути, правило - не доверять клиенту. Когда-либо. Этот пример выполняется в замыкании (трудно проколоть), проходит через входные данные и удаляет все элементы сценария, которые могут вызвать внедрение, если вы выводите результат позже. Затем он отправляет на сервер и выводит материал обратно для удовольствия.
Вы не должны верить, что stripScripts()
сработал и strip_tags
в PHP также и любые другие меры безопасности, которые вы применяете к данным такого пользователя, как mysql_real_escape_string
и т. Д.
Это в вашем блоке domready.
(function() {
var form = document.id("register"), els = form.getElements("input.required"), result = document.id("result");
form.addEvent("submit", function(e) {
e.stop();
var errors = false;
// clean inputs from cross site scripting and some basic validation, put yours in.
els.each(function(el) {
var value = el.get("value").stripScripts();
if (value.length < 3) // example min 3 length
errors = true;
el.set("value", value);
});
if (!errors) {
// set jsfiddle html.
document.id("html").set("value", "Submited safe data was: User: " + document.id("login").get("value") + ", pass: " + document.id("pass").get("value"));
new Request({
url: this.get("action"),
data: this,
onComplete: function() {
result.set("html", this.response.text);
}
}).send();
}
else {
alert("fill in all required fields with at least 3 chars");
}
});
})();
Имейте в виду, что HTML-переменная предназначена для вывода с помощью jsfiddle, имитирующего ajax, и не очень нужна в производстве.