VyÜlo: 4.12.2000 Rubrika:
ASP - Security
Jak p°edejφt chybßm v ASP strßnkßch?
V Φlßnku si ukß₧eme, jak zabrßnit v²pisu neoΦekßvan²ch chyb na obrazovku nßvÜt∞vnφka. Dßle si popφÜeme objekt Err, pomocφ kterΘho lze chybßm postavit tvrdou bariΘru. Vφce v Φlßnku...
P°i programovßnφ VaÜφ webovΘ aplikace m∙₧e nastat mnoho problΘm∙.
Zcela jist∞ je jeden z nich syntaktickß chyba, kterß oznamuje, ₧e jste Üpatn∞ zapsali
n∞jak² p°φkaz nebo parametr. Tyto chyby jsou vyvolßny jazykem, kter²m byla aplikace napsanß.
VBScript mß definovßno 53 a JScript mß definovßno 32 syntaktick²ch chyb.
Mezi nejvφce vyu₧φvanΘ jazyky pro programovßnφ WEB aplikacφ v ASP pat°φ p°edevÜφm JScript
a VBScript.
Jednφm druhem chyb v ASP strßnkßch jsou RUNTIME - Errors. Tyto chyby
se Vßm zobrazφ v p°φpad∞, kdy se k≤d pokusφ vykonat nesprßvnou operaci, kterß nenφ v souladu se sprßvnou syntaxφ danΘho jazyka.
Ve VBScriptu je t∞chto chyb celkem 65 a v JScriptu 76.
Samoz°ejm∞ existujφ chyby, kterΘ vytvß°ejφ nesprßvnΘ v²sledky atd..
Nφ₧e si ·kß₧eme, jak lze jednotlinΘ chyby potlaΦit, aby v
p°φpad∞ neoΦekßvanΘ situace navÜt∞vnφk nevid∞l chybu, ale p°edem p°ipravenou hlßÜku, kterß jej informuje o skuteΦnosti, ₧e nenφ vÜe v po°ßdku.
On error resume next - P°φkaz, kter²m dßvßte najevo p°ekladaΦi, ₧e v p°φpad∞
kdy narazφ na chybu, zapomene na ni a pokraΦuje dßl.
Toto se dß zapsat takΘ pomocφ objektu Err. Dφky tomuto objektu lze v p°φpad∞ konkrΘtnφ chyby nastavil dalÜφ chovßnφ danΘ strßnky.
Objekt Err mß tyto vlastnosti:
Description - Udßvß nßzev chyby
Number - Vracφ Φφslo chyby.
P°φklad:
If Err.Number <> 0 then
Response.Write("Nßzev zobrazovanΘ chyby je " & Err.description)
End If
Tyto °ßdky k≤du zp∙sob² v p°φpad∞ jakΘkoliv chyby vrßcenφ prohlφ₧eΦi danΘ hlßÜky
v podmφnce If.
Pokud budete chtφt pou₧it potkaΦenφ chyb ve scriptu, kde jsou procedury, zßpis bude
vypadat nßsledovn∞:
On Error Resume Next
sub nazev
p°φkaz 1
p°φkaz 2
p°φkaz 3
end sub
sub nazev2
p°φkaz 1
p°φkaz 2
p°φkaz 3 - zde je chyba
p°φkaz 4
end sub
Nastane-li problΘm v druhΘ proced∙°e, znamenßto, ₧e se veÜker² jejφ b∞h ukonΦφ a ji₧ nebude dßle pokraΦovat.
Jestli₧e chcete nßsledovat v provßd∞nφ dalÜφch p°φkaz∙ v proced∙°e i kdy₧ obsahuje chybu,
jednoduÜe zapφÜete On Error Resume Next do danΘ procedury. Tato varianta zp∙sob²,
₧e chyba bude "zapomenuta" a operace bude pokraΦovat dalÜφm p°φkazem.
P°φÜt∞ si ukß₧eme, jak nejlΘpe optimalizovat svoje ASP strßnky, aby co nejmΘne zat∞₧ovali
poΦφtaΦ na kterΘm jsou provozovßny.
Poznßmka korektora: Vß₧enφ Φtenß°i,
mo₧nß Vßm p°iÜel sloh tohoto Φlßnku trochu jin² ne₧ je jist²m standartem serveru NetDay.cz,
ale autor tento Φlßnek psal v urΦitΘm stavu, kter² ho omlouvß :) ╚lßnek byl p°esto tΘm∞° cel²
p°epsßn. Nu₧e, vyjßd°ete se k jeho obsahu a slohovΘ strßnce do komentß°∙.
PS: Nekamenujte ono opakovßnφ slova chyba. V prvnφ verzi textu se v n∞m vyskytovalo 48x :(
David Mßj
dmaj@cmail.cz
Souvisejφcφ Φlßnky
|