編程(Programming)是編定程序的中文簡(jiǎn)稱(chēng),就是讓計(jì)算機(jī)代碼解決某個(gè)問(wèn)題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過(guò)程。為了使計(jì)算機(jī)能夠理解(understand)人的意圖,人類(lèi)就必須將需解決的問(wèn)題的思路、方法和手段通過(guò)計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過(guò)程就是編程。 【實(shí)例名稱(chēng)】 JS代碼實(shí)現(xiàn)指定時(shí)間關(guān)閉頁(yè)面 【實(shí)例描述】 在大型門(mén)戶(hù)網(wǎng)站中,初次打開(kāi)頁(yè)面時(shí)常常會(huì)同時(shí)打開(kāi)一個(gè)廣告頁(yè),有些網(wǎng)站為廣告頁(yè)設(shè)置了自動(dòng)關(guān)閉功能,即使用戶(hù)不關(guān)閉廣告頁(yè).它也會(huì)在指定時(shí)間內(nèi)自動(dòng)關(guān)閉。本例學(xué)習(xí)如何自動(dòng)關(guān)閉頁(yè)面。 【實(shí)例代碼】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>無(wú)標(biāo)題頁(yè)-本站(www.xue51.com)</title>
<script language="javascript">
function closepage()
{
window.close(); //關(guān)閉窗口的方法
}
setTimeout("closepage()",1000);
</script>
</head>
<body>
<p>
調(diào)試其他進(jìn)程的能力賦予您極廣泛的權(quán)力,
這是無(wú)法通過(guò)其他途經(jīng)獲得的,在進(jìn)行遠(yuǎn)程調(diào)試時(shí)更是如此。
惡意的調(diào)試器可能對(duì)正在調(diào)試的計(jì)算機(jī)造成大范圍的損害。
因此,對(duì)可能進(jìn)行調(diào)試的人要有所限制。有關(guān)更多信息,請(qǐng)參見(jiàn)<a
>遠(yuǎn)程調(diào)試權(quán)限</a>。</p>
<p>
但是,許多開(kāi)發(fā)人員沒(méi)有意識(shí)到安全威脅也可以從相反的方向產(chǎn)生
。調(diào)試對(duì)象進(jìn)程中的惡意代碼可能危害調(diào)試計(jì)算機(jī)的安全:
有許多必須防范的不道德的安全利用。</p>
<h1 >
安全性最佳做法</h1>
<div>
<p>
正在調(diào)試的代碼與調(diào)試器之間有一種隱式信任關(guān)系。
如果想調(diào)試代碼,您還應(yīng)該樂(lè)于運(yùn)行它。您起碼必須能夠信任要調(diào)試的代碼。
如您無(wú)法信任它,就不應(yīng)對(duì)它進(jìn)行調(diào)試,或者應(yīng)在可以承擔(dān)風(fēng)險(xiǎn)
且處于獨(dú)立環(huán)境的計(jì)算機(jī)上對(duì)其進(jìn)行調(diào)試。</p>
<p>
為了縮小潛在的攻擊面,應(yīng)在生產(chǎn)計(jì)算機(jī)上禁用調(diào)試。
出于同樣的原因,永遠(yuǎn)不應(yīng)無(wú)限制地啟用調(diào)試。
</p>
<div>
<p>
下面是一些適用于所有托管調(diào)試的常規(guī)建議。</p>
<li>
<p>
附加到非信任用戶(hù)的進(jìn)程時(shí)要小心:當(dāng)這樣做時(shí),
您假定它是可以信賴(lài)的。當(dāng)您試圖附加到非信任用戶(hù)的進(jìn)程時(shí),
將會(huì)出現(xiàn)一個(gè)安全警告對(duì)話(huà)框確認(rèn),詢(xún)問(wèn)您是否要附加到該進(jìn)程。
“信任用戶(hù)”包括您以及在安裝了
.NET Framework 的計(jì)算機(jī)上通常定義的一組標(biāo)準(zhǔn)用戶(hù),
如“aspnet”、“l(fā)ocalsystem”、“networkservice”和
“l(fā)ocalservice”。有關(guān)更多信息,請(qǐng)參見(jiàn)<?xml
namespace="" ns=http://msdn.microsoft.com/mshelp
prefix="MSHelp" ?></p>
</li>
<li>
<p>
從 Internet 下載項(xiàng)目并將其加載到 Visual Studio
時(shí)要小心。即使沒(méi)有進(jìn)行調(diào)試這樣做也很冒險(xiǎn)。這樣做時(shí),
您假定該項(xiàng)目和它包含的代碼是可以信賴(lài)的。</p>
</li>
<p>
有關(guān)更多信息,請(qǐng)參見(jiàn)<a href="c84.htm">調(diào)試托管代碼</a>。</p>
</div>
<h3 >
遠(yuǎn)程調(diào)試安全</h3>
<div >
<p>
本地調(diào)試通常比遠(yuǎn)程調(diào)試更安全。遠(yuǎn)程調(diào)試增加了可查看的總表面積。</p>
<p>
Visual Studio 遠(yuǎn)程調(diào)試監(jiān)視器 (msvsmon.exe) 用于遠(yuǎn)程調(diào)試,
有若干對(duì)其進(jìn)行配置的安全建議。由于無(wú)身份驗(yàn)證模式不安全,
因此配置身份驗(yàn)證模式的首選方式是
Windows 身份驗(yàn)證。使用 Windows 身份驗(yàn)證模式時(shí),
請(qǐng)注意,授予非信任用戶(hù)連接到 msvsmon 的權(quán)限是危險(xiǎn)的,將由對(duì)話(huà)框警告指出。
</p>
<p>
不要在遠(yuǎn)程計(jì)算機(jī)上調(diào)試未知進(jìn)程:有潛在的利用,
可能會(huì)影響正在運(yùn)行調(diào)試器的計(jì)算機(jī),或危害
msvsmon.exe(Visual Studio 遠(yuǎn)程調(diào)試監(jiān)視器)。
如果一定要調(diào)試未知進(jìn)程,請(qǐng)嘗試本地調(diào)試,
并使用防火墻將任何潛在的威脅限制在本地。</p>
<p>
有關(guān)更多信息,請(qǐng)參見(jiàn)<a href="97.htm">安裝遠(yuǎn)程調(diào)試</a>。</p>
<ul>
<li>
<p>
不要在已受威脅的 Web 服務(wù)器上啟用調(diào)試。
</p>
</li>
<li>
<p>
在調(diào)試前,請(qǐng)確保您知道該 Web 服務(wù)器是安全的。
如果您不能確定它是安全的,請(qǐng)不要調(diào)試它。
</p>
</li>
<li>
<p>
如果您正在調(diào)試對(duì) Internet 公開(kāi)的 Web 服務(wù),請(qǐng)?zhí)貏e小心。</p>
</li>
</ul>
<h3 >
外部組件</h3>
<div >
<p>
請(qǐng)注意與您程序交互的外部組件的信任狀態(tài),
尤其是如果您沒(méi)有編寫(xiě)此代碼。還要注意
Visual Studio 或調(diào)試器可能使用的組件。</p>
</div>
<h3 >
符號(hào)和源代碼</h3>
<div >
<p>
兩個(gè)需要考慮安全的 Visual Studio 工具如下:</p>
</div>
<ul>
<li>
<p>
不要在已受威脅的 Web 服務(wù)器上啟用調(diào)試。
</p>
</li>
<li>
<p>
在調(diào)試前,請(qǐng)確保您知道該 Web 服務(wù)器是安全的。
如果您不能確定它是安全的,請(qǐng)不要調(diào)試它。
</p>
</li>
<li>
<p>
如果您正在調(diào)試對(duì) Internet 公開(kāi)的 Web 服務(wù),請(qǐng)?zhí)貏e小心。</p>
</li>
</ul>
<h3 >
外部組件</h3>
<div >
<p>
請(qǐng)注意與您程序交互的外部組件的信任狀態(tài),
尤其是如果您沒(méi)有編寫(xiě)此代碼。
還要注意 Visual Studio 或調(diào)試器可能使用的組件。</p>
</div>
<h3 >
符號(hào)和源代碼</h3>
<div >
<p>
兩個(gè)需要考慮安全的 Visual Studio 工具如下:</p>
</div>
<p>
</p>
</div>
</div> </body>
</html>
【運(yùn)行效果】  【難點(diǎn)剖析】 本例中使用了定時(shí)器和窗口的關(guān)閉方法實(shí)現(xiàn)了定時(shí)關(guān)閉頁(yè)面功能。注意定時(shí)器的默認(rèn)時(shí)間是以毫秒為單位。 【源碼下載】 為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:指定時(shí)間關(guān)閉頁(yè)面 進(jìn)行本實(shí)例源碼下載
使用編程語(yǔ)言寫(xiě)的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |