aspは効果的にウェブサイトの伝言板がごみの伝言/評論が現れて構想を実現することを防止します。
一.フォームにページを記入する:>提出処理ページで、提出時間
If DateDiff("s",request.form("intime1"), Now()) < 5 then
response.write "<SCRIPT language=JavaScript>alert(' , !');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
を設定します。検証コード
yz=cstr(request.Form("yz"))
yz1=cstr(session("yz1"))
if yz1<>yz then
Response.Write("<script language=javascript>alert(' !');</script>")
response.redirect("sign.asp")
end if
3.来路
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
'Response.Write(server_v1)
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
'Response.Write(server_v2)
if mid(server_v1,8,len(server_v2))<>server_v2 then
Response.Write("<script language=javascript>alert(' !');</script>")
response.end
end if
を判断します。毎日の提出回数
'
if request.cookies("postnum")="" then
response.cookies("postnum")=1
response.cookies("postnum").expires=DateAdd("h", 24, Now())
else
response.cookies("postnum")=request.cookies("postnum")+1
end if
if request.cookies("postnum") > 3 then
response.write "<SCRIPT language=JavaScript>alert(' , !');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
を設定します。IP
server_ip=Cstr(Request.ServerVariables("REMOTE_ADDR"))
if right(server_ip,8) = "194.165." then
response.write " 194.165."
response.End()
end if
を禁止します。自然人が発表したのであれば、彼はきっと私達を通じてユーザーに提出したページを通して来たのです。機械が発表したのであれば、来路情報がありません。来た道を判断して、外部提出を禁止します。上の/add.aspは提出ページのソースページです。もちろん、机械も伪装できます。これは次のように対処します。2、検証コード。検証コードはずっと機械のごみに対する伝言の一つの実行可能な方法です。異なる検証コードは異なるマシンの伝言に対する能力があります。複雑な検証コードほど、マシンが解読しにくいです。これは、ユーザの気持ちを考慮し、マシンに対してバランスを取る必要があります。検証コードの使い方については、多く説明しません。Google、Baiduで検索すると多くの紹介があります。3、ソースの提出時間を判断する。提出ページに滞在する時間が短すぎると、例えば20秒であれば、普通は個人であれば、タイピングの時間は必要ないです。例えば、ユーザーがページを開く時(add.aspなど)、この時間をメモして、フォームに隠しオブジェクトを追加します。例えば、「input name=intime 1」type=「hidden」value=「[%=Now]」というように、ユーザーがメッセージを書いてコメントした後、具体的な処理ページに提出します。add.aspのこのintime 1と比較して、この時間差が設定時間より小さい場合、20秒のようにメッセージを禁止し、マシンと判断します。コードはこのように書くことができます。
dim server_v1,server_v2
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if server_v1="" or instr(server_v1,"/add.asp")<=0 or mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<SCRIPT language=JavaScript>alert(' , !');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
は以上の3つの方法で圧倒的に大部分の機械ごみの伝言コメントを遮断できます。しかし、私たちはどうやって伝言に対処しますか?flymornも対処法を提供します。方法は簡単で、ユーザーのcookiesとIPを記録することによって、同じユーザーが投稿するメッセージの数を制限します。例えば、一日24時間以内に、同じユーザだけが情報を5つ発表することができます。私たちは以下の方法で実現できます。
If DateDiff("s",request.form("intime1"), Now()) < 20 then
response.write "<SCRIPT language=JavaScript>alert(' , !');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
は以上の制限を通して、人工の投稿も一定の制限を得ました。上の方法はcookiesに基づいて判断するので、もちろんユーザーはブラウザーを通じてCOOKIESを空にすることができて、しかしこのように彼らを増加してごみの招待状の難度を出して、敷居を高めました。また、投稿者のIPを継続的に判断し、同じIPでの投稿制限数によって目的を達成することができます。ここでは、もう拡張しません。自分でIPを設計して、投稿を制限する方法があります。本論文のテーマについてご意見やご提案があれば、コメントを残してください。