Я недавно унаследовал большой сайт. Я проверял его на наличие недостатков безопасности.
У меня есть следующий код, который вызывается, когда пользователь отправляет обновление своих данных пользователя:
// Ajax request
new Request.JSON({ method: 'get', url: 'ajax.ashx', autoCancel: true, urlEncoded: false, secure: false,
headers: { "Content-type": "application/json" },
onSuccess: function (_json) {
if (!_json.error) {
$('inp_firstname').value = _json.fn;
$('inp_surname').value = _json.sn;
$('usr_Country').value = $(ddlCountry0).getSelected()[0].get('text');
$('inp_companyname').value = _json.cn;
$('inp_website').value = _json.ws;
$('inp_facebook').value = _json.fb;
$('inp_twitter').value = _json.tw;
$('bus_Activity').value = $(ddlActivity0).getSelected()[0].get('text');
$('private_contacts').value = $(chkPrivateContacts).checked;
hidePopup('editDetailsPopup');
}
}
}).get({ 'm': 'editDetailsPro',
'fn': removeTags($('firstname').value),
'sn': removeTags($('surname').value),
'pwd': removeTags($('password').value),
'country': $(ddlCountry0).getSelected()[0].get('value'),
'cn': removeTags($('companyname').value),
'ws': removeTags($('website').value),
'ac': $(ddlActivity0).getSelected()[0].get('value'),
'pc': $(chkPrivateContacts).checked == 1,
'fb': removeTags($('facebooklink').value),
'tw': removeTags($('twitterlink').value) });
Оказывается, функция removeTags();
ничего не делает. Также нет серверной проверки ввода, так что это большая дыра в безопасности.
Что мне нужно проверить на стороне клиента, чтобы убедиться, что законные пользователи могут вводить свои данные, и есть ли функции библиотеки, которые будут выполнять все эти проверки для меня (я не смог их найти)? Когда он доберется до сервера, могу ли я вернуть его в исходную форму или вставить в базу данных как есть?