基本的なアイデア:
各機能、プログラムページの独立したプログラムを作成します
サーバー側でできるだけ情報を顧客に知らせてください
問題について考えるために「顧客はこれを書くべき」という考えを使わないでください
できないことができないことをできるだけ多くのことを考えてください
1。インタラクティブな動的Webページでの可能な問題
1.1フォームタイプインタラクション
1.1.1概念の紹介
訪問者とやり取りするとき、最も一般的に使用されるフォーム(投稿/取得/プットメソッド)。非常に便利ですが、そのために多くの問題が発生します。
フォームの入力フラグ
ユーザーの入力、パスワード、電子メールなど、ユーザーが入力した情報を受け入れるために使用されます。ユーザーの入力をよく確認しない場合、悪意のあるユーザー
一部の安全機をブロックします
安全性認証をバイパスします。たとえば、標準のHTMLステートメントまたはJavaScriptステートメントを入力すると、出力結果が変更され、入力ボックスに標準のHTMLステートメントを入力すると
どのような結果が得られますか?たとえば、メッセージブックでは、メッセージの内容を入力します。<fontsize = 10> hello! </font>プログラムに画面がない場合
HTMLステートメントをブロックし、「Hello」フォントが変更されます
サイズ。メッセージブックのフォントサイズとステッカーを変更するのは悪いことではないこともありますが、メッセージブックを鮮明にすることができます。ただし、入力ボックスに書き込む場合
javascriptのデッドループ、
<aherf = "http:// someurl" onmouseover = "while(1){window.close( '/')}">最初の千スリリング</a>その後、メッセージを他の人にチェックします。
ゲストを動かすだけです
マウスを「最初の千スリリング」に移動すると、ユーザーのブラウザは死んだループのために死にます。
1.1.2予防の重要なポイント
(1)特殊文字をフィルタリングします
([/&;//`'/// |"*?〜<>^/(/)/[/]/{/}/$/n/r])/// $ 1/g;)、これは最も基本的であり、多くの場所で複数回言及されています。
<scriptlanguage = "vbscript">
subbubotton_onclick
erm1.uusername.value = "" then
msgbox「あなたの名前は空にすることはできません!」、0+32、「ああ!まだ不可能」
form1.uusername.focus
Exitsub
endif
efform1.upassword.value = "" then
msgbox「パスワードは空にすることはできません!」、0+32、「ああ!まだ不可能」
form1.upassword.focus
Exitsub
endif
erm1.uusername.value = "" then
msgbox「あなたの名前は空にすることはできません!」、0+32、「ああ!まだ不可能」
form1.uusername.focus
Exitsub
endif
form1.submit
Endingub
</script>
functionisempty(objname)
{
varstr = document.inputform [objname] .value
vartmpstr = str.replace([/&;//`'/// |"*?〜<>^/(/)/[/]/{/}/$/n/r] /// $ 1/g;、 "")
vartmpstr = tmpstr.replace([/&;/`'//// |"*〜<>^/(/)/[/]/{/}/$/n/r] /// $ 1/g;、 "")
return(tmpstr.length == 0)
}
functionCheck()
{
tf = document.inputform
エラー= ""
if(isempty( "username"))errors+= "ユーザー名は空にすることはできません。/n";
if(isempty( "password"))errors+= "パスワードは空にすることはできません!/n"
if(errors!= "")
アラート(エラー);
return(errors == "")