asp.net mvc 5 трябва да се изпълнява проверка от страна на сървъра, ако страната на клиента се изпълнява първа

Имам клас атрибути за валидиране, който изпълнява сървърна страна, която проверява текстово поле на формуляр. Също така го внедрих от страна на клиента в извикване на javascript. Въпросът ми е, ако клиентската страна бъде извикана и върне true, трябва ли да се извика и сървърната страна? Трябва ли да се извикат както страната на клиента, така и страната на сървъра? Изглежда, че ако проверката от страна на клиента премине, тогава няма да има нужда да извиквате отново какъвто и да е вид проверка от страна на сървъра. Просто изглежда малко излишно да проверявате нещо два пъти.


person user1186050    schedule 24.02.2015    source източник


Отговори (3)


Валидирането от страна на клиента е за удобство. Валидирането от страна на сървъра е истинското валидиране. Така или иначе никога не трябва да се доверявате на клиента, така че във всеки случай трябва да стартирате валидирането от страна на сървъра.

person Eric King    schedule 24.02.2015

Да, абсолютно трябва.

Причината е, защото какво ще стане, ако някой заобиколи вашия уебсайт и направи обаждания директно към вашия сървър? Ами ако се опитат да въведат лоши данни, за да разбият сайта ви? Без валидирането от страна на сървъра също оставате незащитени.

Причината за валидирането от страна на клиента е, за да можете бързо да предоставите обратна връзка на потребителя, за да поправите грешки, вероятно дори докато пишат, без да се нуждаят от обратни съобщения.

Причината за валидирането от страна на сървъра е да се осигури по-сложно валидиране, което може да включва справки в базата данни и най-важното да защити вашия сървър от злонамерени потребители.

person Ian    schedule 24.02.2015
comment
Просто изглежда, че трябва да има начин да се провери дали е извикано валидиране от страна на клиента и ако е преминало, тогава не стартирайте валидиране от страна на сървъра. - person user1186050; 24.02.2015
comment
@user1186050 Как би могъл сървърът да разбере? Клиентът трябва да го каже, нали? И тъй като клиентът е извън контрола на сървъра, сървърът може лесно да бъде излъган. - person Eric King; 25.02.2015
comment
@user1186050: Само да отбележа, че ако някой от отговорите ви е помогнал, трябва да го приемете като отговор. Ако не, тогава не се колебайте да поискате повече подробности чрез коментари или като редактирате въпроса си. - person Ian; 25.02.2015

Валидирането от страна на клиента е просто начин за намаляване на работната сила на вашия сървър, защото щом валидирането от страна на клиента е вярно, то ще бъде вярно и в приложението от страна на сървъра. понякога хората може да заобиколят валидирането от страна на клиента, което вашето валидиране от страна на сървъра ще ви помогне за това. Най-добре е винаги да правите валидиране от страна на сървъра, но само за да намалите заявките към вашия сървър през цялото време за валидиране, клиент-сървърът може да ви помогне да потвърдите първо, преди заявката да отиде до сървъра и ако е невярна, няма заявка да отиде към страната на сървъра.

person Azeez Arewa    schedule 24.02.2015