新聞中心
在數(shù)據(jù)庫(kù)開(kāi)發(fā)中,字符串緩沖區(qū)大小是一個(gè)常見(jiàn)問(wèn)題,它可能導(dǎo)致數(shù)據(jù)被截?cái)啵蛘卟樵儾僮魇?。本文將介紹一些解決方法,幫助開(kāi)發(fā)者避免該問(wèn)題。

市北ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
1. 檢查數(shù)據(jù)庫(kù)配置
我們要檢查數(shù)據(jù)庫(kù)配置中是否存在字符串緩沖區(qū)大小的配置項(xiàng)。不同數(shù)據(jù)庫(kù)可能存在不同的配置項(xiàng),例如 MySQL 中的 max_allowed_packet,Oracle 中的 sqlnet.inbound_connect_timeout。如果該配置項(xiàng)存在,則可以適當(dāng)?shù)卦黾泳彌_區(qū)大小。
2. 增加緩沖區(qū)大小
如果數(shù)據(jù)庫(kù)配置中不存在字符串緩沖區(qū)大小的配置項(xiàng),我們可以嘗試手動(dòng)增加緩沖區(qū)大小。在 MySQL 中,可以使用 SET GLOBAL max_allowed_packet=xxx; 命令來(lái)增加緩沖區(qū)大小,其中 xxx 為緩沖區(qū)大小的數(shù)值(單位為字節(jié))。
在 Oracle 中,可以使用 ALTER SYSTEM SET sqlnet.inbound_connect_timeout=yyy; 命令來(lái)增加緩沖區(qū)大小,其中 yyy 為緩沖區(qū)大小的數(shù)值(單位為字節(jié))。
值得注意的是,增加緩沖區(qū)大小可能會(huì)導(dǎo)致性能下降,因此應(yīng)該謹(jǐn)慎使用。
3. 使用流式查詢
如果查詢結(jié)果中的某個(gè)字段超出緩沖區(qū)大小,我們可以使用流式查詢來(lái)避免該問(wèn)題。流式查詢會(huì)將查詢結(jié)果分批次返回,而不是一次性返回所有結(jié)果。
在 MySQL 中,我們可以在查詢語(yǔ)句中加上”SELECT SQL_CALC_FOUND_ROWS … LIMIT …”語(yǔ)句,這樣查詢結(jié)果會(huì)被分成多個(gè)批次返回。
在 Oracle 中,我們可以使用游標(biāo)(CURSOR)來(lái)實(shí)現(xiàn)流式查詢。在查詢語(yǔ)句中,可以使用 FOR UPDATE OF 語(yǔ)句創(chuàng)建游標(biāo),然后使用 FETCH NEXT 和 CLOSE 語(yǔ)句來(lái)獲取數(shù)據(jù)。
4. 使用二進(jìn)制大對(duì)象(BLOB)
如果需要存儲(chǔ)較大的字符串,我們可以考慮使用二進(jìn)制大對(duì)象(BLOB)來(lái)代替字符串類型。BLOB 類型可以存儲(chǔ)任意二進(jìn)制數(shù)據(jù),包括圖片、音頻等非文本數(shù)據(jù)。
在 MySQL 中,可以使用 LONGBLOB 數(shù)據(jù)類型來(lái)存儲(chǔ) BLOB 類型數(shù)據(jù);在 Oracle 中,可以使用 BLOB 或 CLOB 數(shù)據(jù)類型來(lái)存儲(chǔ) BLOB 類型數(shù)據(jù)。
5. 使用文本大對(duì)象(CLOB)
如果需要存儲(chǔ)較大的文本數(shù)據(jù),我們可以考慮使用文本大對(duì)象(CLOB)來(lái)代替字符串類型。CLOB 類型可以存儲(chǔ)任意文本數(shù)據(jù),包括長(zhǎng)文本、XML 等。
在 MySQL 中,可以使用 LONGTEXT 數(shù)據(jù)類型來(lái)存儲(chǔ) CLOB 類型數(shù)據(jù);在 Oracle 中,可以使用 BLOB 或 CLOB 數(shù)據(jù)類型來(lái)存儲(chǔ) CLOB 類型數(shù)據(jù)。
在日常開(kāi)發(fā)中,數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小問(wèn)題是一個(gè)比較常見(jiàn)的問(wèn)題。本文介紹了一些解決方法,包括檢查數(shù)據(jù)庫(kù)配置、增加緩沖區(qū)大小、使用流式查詢、使用二進(jìn)制大對(duì)象和文本大對(duì)象等。開(kāi)發(fā)者可以根據(jù)具體情況選擇合適的解決方法。同時(shí),我們也需要意識(shí)到,增加緩沖區(qū)大小可能會(huì)導(dǎo)致性能下降,因此應(yīng)該謹(jǐn)慎使用。
相關(guān)問(wèn)題拓展閱讀:
- 錯(cuò)誤691?
- 緩沖區(qū)溢出攻擊的基本原理是什么?
錯(cuò)誤691?
提示錯(cuò)誤691真正意義上來(lái)講可能是以下原因:
1:域名出現(xiàn)錯(cuò)誤,(用戶名或密碼輸入錯(cuò)誤);
2:或?qū)拵У狡谇焚M(fèi)造成;
3: 服務(wù)器無(wú)反映,(機(jī)房用戶端口錯(cuò)誤,或帳號(hào)未被激活);
4:硬件故障。
5G+1000M寬帶任性用,智能雙千兆,定制美好生活,詳情可登錄廣西電信網(wǎng)上營(yíng)業(yè)廳查看??头?07號(hào)為你解答。
寬帶691錯(cuò)誤:
1、欠費(fèi)
出現(xiàn)691錯(cuò)誤的時(shí)候我基本上會(huì)首先考慮這個(gè)問(wèn)題,因?yàn)檫@個(gè)原因最常見(jiàn),也最容易解決。只需要查詢一下自己的賬號(hào)是否欠費(fèi),如果欠費(fèi)充值后就可以連接上,如果不是欠費(fèi)考慮其他原因。
2、用戶名或者密碼錯(cuò)誤
這個(gè)不是很常見(jiàn),如果是撥號(hào)上網(wǎng)基本上都會(huì)選擇保存密碼,但是也有可能被其他人動(dòng)了一下,所以重新輸入賬號(hào)和密碼試一下,如果不能解決要考慮其他原因。
3、MAC地址錯(cuò)誤
這個(gè)不常見(jiàn),經(jīng)常是電腦上裝了兩個(gè)網(wǎng)卡才會(huì)出現(xiàn),禁用一個(gè)就可以了。
4、賬號(hào)被盜
這個(gè)其實(shí)是用戶密碼錯(cuò)誤的小分類,之所以把他列出來(lái)是如果你確信自己的用戶名和密碼沒(méi)有錯(cuò)誤,有可能別人重設(shè)了密碼,所以你要打到網(wǎng)絡(luò)運(yùn)營(yíng)商那里重置密碼。
出現(xiàn)錯(cuò)誤691的解決方法:
1、故障時(shí)一定要仔細(xì)判斷,帳號(hào)密碼的大小寫(xiě)、帳號(hào)前后的空格,很難分辨出來(lái)。所以當(dāng)出現(xiàn)691錯(cuò)誤時(shí),可以嘗試把原來(lái)的帳號(hào)和密碼刪掉,重新輸入正確帳號(hào)及密碼。
2、帳號(hào)欠費(fèi):ADSL寬帶用戶欠費(fèi)后,寬帶接入服務(wù)商會(huì)將該帳號(hào)暫時(shí)停用,用戶交清欠費(fèi)后,帳號(hào)不一定會(huì)馬上啟用,這時(shí)如果撥號(hào),也會(huì)出現(xiàn)錯(cuò)誤691的提示。
3、寬帶服務(wù)商限制了你帳戶使用數(shù)目,如果別人正在使用你的帳號(hào),你撥號(hào)就是錯(cuò)誤691,請(qǐng)檢查同時(shí)使用此帳號(hào)的人數(shù)。
4、一個(gè)帳號(hào)更好只在你申請(qǐng)的端口上使用,如果被帶到其他的端口上,可能會(huì)提示錯(cuò)誤691。
5、由于某種原因,帳號(hào)不正常掉線,例如:電腦突然斷電。服務(wù)器那邊還沒(méi)斷開(kāi),你的用戶還在登錄狀態(tài),和上面情況類似,所以錯(cuò)誤691。這種情況你只需將電腦、Model調(diào)制解調(diào)器重啟,過(guò)5—10分鐘分重試一般就會(huì)好。
6、電腦禁用網(wǎng)卡后或網(wǎng)卡未正常驅(qū)動(dòng)也會(huì)出現(xiàn)691的提示,檢查網(wǎng)卡是否正常工作。
7、用戶數(shù)據(jù)綁定錯(cuò)誤:為了更好的服務(wù)于用戶,保障用戶帳號(hào)的安全,寬帶服務(wù)商將寬帶帳號(hào)和用戶的物理端口做了綁定,數(shù)量上也做了一對(duì)一的綁定,這樣,該帳號(hào)只能在一個(gè)物理端口上使用(即限制了ADSL帳號(hào)的漫游),而且一個(gè)端口只限一臺(tái)電腦上網(wǎng),如果用戶的數(shù)據(jù)綁定錯(cuò)誤,撥號(hào)時(shí)也會(huì)出現(xiàn)錯(cuò)誤691的提 示。
8、當(dāng)電腦上安裝了兩塊本地網(wǎng)卡并且同時(shí)啟用時(shí)。導(dǎo)致MAC地址綁定錯(cuò)誤,出現(xiàn)691錯(cuò)誤代碼,建議禁用其中一塊網(wǎng)卡。
了解更多服務(wù)優(yōu)惠請(qǐng)關(guān)注“安徽電信”公眾號(hào)。
如您的聯(lián)通寬帶上網(wǎng)顯示“錯(cuò)誤691”是由于帳號(hào)密碼輸入錯(cuò)誤或欠費(fèi),處理方法如下:
1.如有路由器,先斷電重啟,若仍不能使用,請(qǐng)去掉路由器進(jìn)行下面操作檢測(cè);
2.請(qǐng)先確認(rèn)寬帶是否欠費(fèi)或到期,如有捆綁手機(jī),請(qǐng)確認(rèn)手機(jī)是否欠費(fèi)、停機(jī)、暫停、拆機(jī),如有以上情況請(qǐng)續(xù)費(fèi)或繳清欠費(fèi)后再試;
3.請(qǐng)嘗試重新輸入寬帶用戶名、密碼,或重建寬帶連接。
如仍無(wú)改善,請(qǐng)撥打人工客服熱線,根據(jù)語(yǔ)音提示,選擇故障自助申告專用通道向聯(lián)通公司申告,有專人聯(lián)系您處理。
739
遠(yuǎn)程服務(wù)器無(wú)法使用由 Windows NT 加密的密碼。
撥號(hào)連接或 VPN 連接的錯(cuò)誤代碼列表
600
某操作處于掛起狀態(tài)。
601
端口句柄無(wú)效。
602
端口已打開(kāi)。
603
呼叫方緩沖區(qū)太小。
604
指定了錯(cuò)誤的信息。
605
無(wú)法設(shè)置端口信息。
606
無(wú)法連接端口。
607
事件無(wú)效。
608
設(shè)備不存在。
609
設(shè)備類型不存在。
610
緩沖區(qū)無(wú)效。
611
路由不可用。
612
沒(méi)有分配路由。
613
指定了無(wú)效的壓縮。
614
緩沖區(qū)溢出。
615
找不到端口。
616
某異步請(qǐng)求處于掛起狀態(tài)。
617
端口或設(shè)備已斷開(kāi)連接。
618
端口尚未打開(kāi)。
619
端口已斷開(kāi)連接。
620
沒(méi)有終結(jié)點(diǎn)。
621
無(wú)法打開(kāi)簿文件。
622
無(wú)法加載簿文件。
623
找不到簿條目。
624
無(wú)法寫(xiě)入簿文件。
625
在簿中發(fā)現(xiàn)無(wú)效信息。
626
無(wú)法加載字符串。
627
找不到密鑰。
628
端口已斷開(kāi)連接。
629
端口已由遠(yuǎn)程機(jī)器斷開(kāi)連接。
630
端口由于硬件故障已斷開(kāi)連接。
631
端口已由用戶斷開(kāi)連接。
632
結(jié)構(gòu)大小不正確。
633
端口已被使用或不是為遠(yuǎn)程訪問(wèn)撥出配置的。
634
無(wú)法在遠(yuǎn)程網(wǎng)絡(luò)上注冊(cè)您的計(jì)算機(jī)。
635
未知錯(cuò)誤。
636
端口連接了錯(cuò)誤的設(shè)備。
637
無(wú)法轉(zhuǎn)換字符串。
638
請(qǐng)求已超時(shí)。
639
沒(méi)有可用的異步網(wǎng)絡(luò)。
640
出現(xiàn) NetBIOS 錯(cuò)誤。
641
服務(wù)器無(wú)法分配需要用來(lái)支持客戶端的 NetBIOS 資源。
642
您的一個(gè) NetBIOS 名稱已在遠(yuǎn)程網(wǎng)絡(luò)上注冊(cè)。
643
服務(wù)器上的網(wǎng)卡失敗。
644
您將無(wú)法接收彈出的網(wǎng)絡(luò)信息。
645
內(nèi)部身份驗(yàn)證錯(cuò)誤。
646
不允許本帳戶在此時(shí)間登錄。
647
帳戶已禁用。
648
密碼已過(guò)期。
649
帳戶沒(méi)有遠(yuǎn)程訪問(wèn)權(quán)限。
650
遠(yuǎn)程訪問(wèn)服務(wù)器沒(méi)有響應(yīng)。
651
您的調(diào)制解調(diào)器(或其它連接設(shè)備)報(bào)告了一個(gè)錯(cuò)誤。
652
無(wú)法識(shí)別來(lái)自該設(shè)備的響應(yīng)。
653
在設(shè)備 .INF 文件段中找不到設(shè)備所需的宏。
654
在設(shè)備 .INF 文件段中的命令或響應(yīng)引用了未定義的宏
655
在設(shè)備 .INF 文件段中找不到 宏。
656
在設(shè)備 .INF 文件段的 宏中包含未定義的宏
657
無(wú)法打開(kāi)設(shè)備 .INF 文件。
658
設(shè)備 .INF 或媒體 .INI 文件中的設(shè)備名太長(zhǎng)。
659
媒體 .INI 文件引用了未知設(shè)備名。
660
設(shè)備 .INF 文件中不包含任何命令的響應(yīng)。
661
設(shè)備 .INF 文件中缺少一個(gè)命令。
662
試圖設(shè)置設(shè)備 .INF 文件段中未列出的宏。
663
媒體 .INI 文件引用了未知設(shè)備類型。
664
無(wú)法分配內(nèi)存。
665
端口不是為遠(yuǎn)程訪問(wèn)配置的。
666
您的調(diào)制解調(diào)器(或其它連接設(shè)備)不起作用。
667
無(wú)法讀取媒體 .INI 文件。
668
連接已斷開(kāi)。
669
媒體 .INI 文件中的參數(shù)用法無(wú)效。
670
無(wú)法從媒體 .INI 文件中讀取段名。
671
無(wú)法從媒體 .INI 文件中讀取設(shè)備類型。
672
無(wú)法從媒體 .INI 文件中讀取設(shè)備名。
673
無(wú)法從媒體 .INI 文件中讀取用法。
674
無(wú)法從媒體 .INI 文件中讀取更大連接 BPS 頻率。
675
無(wú)法從媒體 .INI 文件中讀取更載 BPS 頻率。
676
線路忙。
677
是某人而不是調(diào)制解調(diào)器應(yīng)答。
678
沒(méi)有應(yīng)答。
679
無(wú)法檢測(cè)載波。
680
沒(méi)有撥號(hào)音。
681
設(shè)備報(bào)告了常見(jiàn)錯(cuò)誤。
682
寫(xiě)入 SECTIONNAME 時(shí)出錯(cuò)
683
寫(xiě)入 DEVICETYPE 時(shí)出錯(cuò)
684
寫(xiě)入 DEVICENAME 時(shí)出錯(cuò)
685
寫(xiě)入 MAXCONNECTBPS 時(shí)出錯(cuò)
686
寫(xiě)入 MAXCARRIERBPS 時(shí)出錯(cuò)
687
寫(xiě)入用法時(shí)出錯(cuò)
688
寫(xiě)入 DEFAULTOFF 時(shí)出錯(cuò)
689
讀取 DEFAULTOFF 時(shí)出錯(cuò)
690
清空 INI 文件時(shí)出錯(cuò)
691
由于域上的用戶名和/或密碼無(wú)效而拒絕訪問(wèn)。
692
端口或連接的設(shè)備硬件故障。
693
錯(cuò)誤,不是二進(jìn)制宏
694
錯(cuò)誤,找不到 DCB
695
錯(cuò)誤,狀態(tài)機(jī)器沒(méi)有開(kāi)始
696
錯(cuò)誤,狀態(tài)機(jī)器已經(jīng)開(kāi)始
697
錯(cuò)誤,響應(yīng)環(huán)不完整
698
設(shè)備 .INF 文件中的響應(yīng)鍵名不符合所需格式。
699
設(shè)備響應(yīng)導(dǎo)致緩沖區(qū)溢出。
700
設(shè)備 .INF 文件中的擴(kuò)展命令太長(zhǎng)。
701
設(shè)備采用了 COM 驅(qū)動(dòng)程序不支持的 BPS 頻率。
702
意外地收到了設(shè)備響應(yīng)。
703
錯(cuò)誤的交互模式
704
錯(cuò)誤,回?fù)芴?hào)碼不對(duì)
705
錯(cuò)誤,無(wú)效的身份驗(yàn)證狀態(tài)
706
寫(xiě)入 INITBPS 時(shí)出錯(cuò)
707
X.25 診斷指示。
708
帳戶已過(guò)期。
709
在域上更改密碼時(shí)出錯(cuò)。
710
與您的調(diào)制解調(diào)器通信時(shí)檢測(cè)到序列溢出錯(cuò)誤。
711
RasMan 初始化失敗。檢查事件日志。
712
雙向傳輸端口正在初始化。請(qǐng)等待幾秒鐘再重?fù)芴?hào)。
713
沒(méi)有活動(dòng)的 ISDN 線路可用。
714
沒(méi)有足夠的 ISDN 通道可用于實(shí)現(xiàn)此調(diào)用。
715
線質(zhì)量太差,發(fā)生太多錯(cuò)誤。
716
遠(yuǎn)程訪問(wèn) IP 配置無(wú)法使用。
717
靜態(tài)遠(yuǎn)程訪問(wèn) IP 地址池中無(wú)可用的 IP 地址。
718
PPP 超時(shí)。
719
PPP 已由遠(yuǎn)程機(jī)器終止。
720
未配置 PPP 控制協(xié)議。
721
遠(yuǎn)程 PPP 對(duì)等機(jī)不響應(yīng)。
722
PPP 數(shù)據(jù)包無(wú)效。
723
包括前綴和后綴的號(hào)碼太長(zhǎng)。
724
IPX 協(xié)議無(wú)法在此端口撥出,因?yàn)榇擞?jì)算機(jī)是 IPX 路由器。
725
IPX 協(xié)議無(wú)法在此端口撥入,因?yàn)槲窗惭b IPX 路由器。
726
IPX 協(xié)議不能同時(shí)在一個(gè)以上的端口上用于撥出。
727
無(wú)法訪問(wèn) TCPCFG.DLL。
728
找不到與遠(yuǎn)程訪問(wèn)綁定的 IP 適配器。
729
除非安裝 IP 協(xié)議,否則無(wú)法使用 SLIP。730
計(jì)算機(jī)注冊(cè)未完成。
731
沒(méi)有配置協(xié)議。
732
PPP 協(xié)商尚未聚合。
733
針對(duì)此網(wǎng)絡(luò)協(xié)議的 PPP 控制協(xié)議在此服務(wù)器上不可用。
734
PPP 鏈接控制協(xié)議已終止。
735
服務(wù)器拒絕接受請(qǐng)求地址。
736
遠(yuǎn)程計(jì)算機(jī)終止了控制協(xié)議。
737
檢測(cè)到環(huán)回。
738
服務(wù)器沒(méi)有指派地址。
739
遠(yuǎn)程服務(wù)器無(wú)法使用由 Windows NT 加密的密碼。
740
為遠(yuǎn)程訪問(wèn)配置的 TAPI 設(shè)備未能初始化,或未得到正確的安裝。
741
本地計(jì)算機(jī)不支持加密。
742
遠(yuǎn)程服務(wù)器不支持加密。
743
遠(yuǎn)程服務(wù)器要求加密。
744
無(wú)法使用由遠(yuǎn)程服務(wù)器指派(原為分配)的 IPX 網(wǎng)絡(luò)號(hào)。檢查事件日志。
745
ERROR_INVALID_M
746
ERROR_M_UNINITIALIZED
747
ERROR_NO_MAC_FOR_PORT
748
ERROR_M_TIMEOUT
749
ERROR_BAD_PHONE_NUMBER
750
ERROR_WRONG_MODULE
751
回?fù)芴?hào)碼包含一個(gè)無(wú)效字符。號(hào)碼中只允許有下列 18 個(gè)字符:0 到 9、T、P、W、(、)、-、@ 和空格
752
執(zhí)行腳本時(shí)遇到語(yǔ)法錯(cuò)誤。
753
無(wú)法中斷連接,因?yàn)樗怯啥鄥f(xié)議路由器創(chuàng)建的。
754
系統(tǒng)無(wú)法找到多重鏈接綁定。
755
因?yàn)檫@個(gè)項(xiàng)目已有一個(gè)自定義的撥號(hào)程序,因此系統(tǒng)不能做自動(dòng)撥號(hào)。
756
已經(jīng)撥了這個(gè)連接。
757
無(wú)法自動(dòng)開(kāi)始遠(yuǎn)程訪問(wèn)服務(wù)。詳細(xì)情況請(qǐng)檢查事件日志。
758
Internet 連接共享已經(jīng)在連接上啟用。
759
在更改現(xiàn)存的 Internet 連接共享設(shè)置時(shí),出現(xiàn)了一個(gè)錯(cuò)誤。
760
路由能力被啟用時(shí),出現(xiàn)了一個(gè)錯(cuò)誤。
761
為連接啟用 Internet 連接共享時(shí),出現(xiàn)了一個(gè)錯(cuò)誤。
762
為共享配置局域網(wǎng)時(shí),出現(xiàn)了一個(gè)錯(cuò)誤。
763
無(wú)法啟用 Internet 連接共享。除了共享的連接外,還有一個(gè)以上 LAN 連接。
764
沒(méi)有安裝智能卡讀取器。
765
無(wú)法啟用 Internet 連接共享。一個(gè)已經(jīng)用 IP 地址配置的 LAN 連接需要自動(dòng) IP 地址。
766
找不到證書(shū)。使用通過(guò) IPSec 的 L2TP 協(xié)議的連接要求安裝一個(gè)機(jī)器證書(shū),它也叫作計(jì)算機(jī)證書(shū)。
767
無(wú)法啟用 Internet 連接共享。所選的作為專用網(wǎng)絡(luò)的 LAN 連接有不止一個(gè)配置的 IP 地址。在啟用 Internet 連接共享之前,請(qǐng)用一個(gè)單一的 IP 地址重新配置 LAN 連接。
768
因?yàn)榧用軘?shù)據(jù)失敗連接嘗試失敗。
769
無(wú)法連接到指定目標(biāo)。
770
遠(yuǎn)程計(jì)算機(jī)拒絕連接嘗試。
771
由于網(wǎng)絡(luò)忙連接嘗試失敗。
772
遠(yuǎn)程計(jì)算機(jī)的網(wǎng)絡(luò)硬件與呼叫請(qǐng)求的種類不兼容。
773
由于目的號(hào)碼更改,連接嘗試失敗。
774
由于臨時(shí)失敗,連接嘗試失敗。請(qǐng)重新連接。
775
遠(yuǎn)程計(jì)算機(jī)的呼叫被阻。
776
由于遠(yuǎn)程計(jì)算機(jī)啟用了“不要打擾”功能,調(diào)用不能連接。
777
由于遠(yuǎn)程計(jì)算機(jī)上的調(diào)制解調(diào)器(或其它連接設(shè)備)出現(xiàn)故障,連接嘗試失敗。
778
不能驗(yàn)證服務(wù)器的身份。
779
如果用這個(gè)連接撥出,您必須使用智能卡。
780
嘗試的功能在這個(gè)連接上無(wú)效。
781
連接需要證書(shū),但是沒(méi)有找到有效的證書(shū)。需要更多協(xié)助,請(qǐng)單擊“詳細(xì)信息”,或在幫助和支持中心查找此錯(cuò)誤號(hào)。
782
不能啟用 Internet 連接共享(ICS)和 Internet 連接防火墻(ICF),因?yàn)橐言诖擞?jì)算機(jī)上啟用了路由和遠(yuǎn)程訪問(wèn)。要啟用 ICS 或 ICF,首先要禁用路由和遠(yuǎn)程訪問(wèn)。有關(guān)路由和遠(yuǎn)程訪問(wèn),ICS 或 ICF 的更多信息,請(qǐng)參閱幫助和支持。
783
無(wú)法啟用 Internet 連接共享。選擇的作為專用網(wǎng)絡(luò)的 LAN 連接不存在,或者沒(méi)有與網(wǎng)絡(luò)連接。請(qǐng)?jiān)趩⒂?Internet 連接共享之前確認(rèn) LAN 網(wǎng)卡已連接。
784
您在登錄時(shí)不能用此連接撥號(hào),因?yàn)樗慌渲脼槭褂靡粋€(gè)與智能卡上的名稱不同的用戶名。如果您想在登錄時(shí)使用它,必須將其配置為使用智能卡上的用戶名。
785
您在登錄時(shí)不能用此連接撥號(hào),因?yàn)樗鼪](méi)有配置為使用智能卡。如果您想在登錄時(shí)使用它,必須編輯此連接的屬性使其使用智能卡。
786
L2TP 連接嘗試失敗,因?yàn)樵谀挠?jì)算機(jī)上沒(méi)有有效的機(jī)器證書(shū)以進(jìn)行安全身份驗(yàn)證。
787
L2TP 連接嘗試失敗,因?yàn)榘踩珜硬荒苌矸蒡?yàn)證遠(yuǎn)程計(jì)算機(jī)。
788
L2TP 連接嘗試失敗,因?yàn)榘踩珜硬荒芘c遠(yuǎn)程計(jì)算機(jī)協(xié)商兼容的參數(shù)。
789
L2TP 連接嘗試失敗,因?yàn)榘踩珜釉诔跏蓟c遠(yuǎn)程計(jì)算機(jī)的協(xié)商時(shí)遇到一個(gè)處理錯(cuò)誤。
790
L2TP 連接嘗試失敗,因?yàn)樵谶h(yuǎn)程計(jì)算機(jī)上的證書(shū)確認(rèn)失敗。
791
L2TP 連接嘗試失敗,因?yàn)闆](méi)有找到此連接的安全策略。
792
L2TP 連接嘗試失敗,因?yàn)榘踩珔f(xié)商超時(shí)。
793
L2TP 連接嘗試失敗,因?yàn)樵趨f(xié)商安全時(shí)發(fā)生一個(gè)錯(cuò)誤。
794
此用戶的幀協(xié)議 RADIUS 屬性不是 PPP。
795
此用戶的隧道類型 RADIUS 屬性不正確。
796
此用戶的服務(wù)類型 RADIUS 屬性既不是幀也不是回?fù)軒?/p>
797
不能建立到遠(yuǎn)程計(jì)算機(jī)的連接,因?yàn)闆](méi)有找到調(diào)制解調(diào)器,或者調(diào)制解調(diào)器忙。需要更多協(xié)助,請(qǐng)單擊“詳細(xì)信息”,或在幫助和支持中心查找此錯(cuò)誤號(hào)。
798
沒(méi)有找到一個(gè)可以用于可擴(kuò)展的身份驗(yàn)證協(xié)議的證書(shū)。
799
由于網(wǎng)絡(luò)上發(fā)生 IP 地址沖突,因此不能啟用 Internet 連接共享訪問(wèn) (ICS)。ICS 要求主機(jī)被配置為用 192.168.0.1。請(qǐng)確認(rèn)網(wǎng)絡(luò)上沒(méi)有其它客戶端被配置為用 192.168.0.1。
800
不能建立 VPN 連接。VPN 服務(wù)器可能不能到達(dá),或者此連接的安全參數(shù)沒(méi)有正確配置。
801
此連接被配置成驗(yàn)證訪問(wèn)服務(wù)器的身份,但是 Windows 不能證實(shí)服務(wù)器發(fā)送的數(shù)字證書(shū)。
802
無(wú)法識(shí)別所提供的卡。請(qǐng)檢查卡是否正確插入,是否插接緊密。
803
保存在會(huì)話 cookie 中的 PEAP 配置和當(dāng)前的會(huì)話配置不匹配。
804
保存在會(huì)話 cookie 中的 PEAP 標(biāo)識(shí)和當(dāng)前標(biāo)識(shí)不匹配。
805
您不能在登錄時(shí)使用此連接撥號(hào),因?yàn)樗慌渲贸墒褂玫卿浐蟮挠脩羯矸葑C。
900
路由器未運(yùn)行。
901
接口已連接。
902
路由器不認(rèn)得指定的協(xié)議標(biāo)識(shí)符。
903
請(qǐng)求撥號(hào)接口管理器未運(yùn)行。
904
此名稱的接口已經(jīng)與路由器一起注冊(cè)了。
905
此名稱的接口未與路由器一起注冊(cè)。
906
接口未連接。
907
指定的協(xié)議正停止。
908
接口已連接所以不能刪除。
909
接口憑據(jù)未設(shè)置。
910
此接口已經(jīng)在連接過(guò)程中。
911
已經(jīng)在進(jìn)行這個(gè)接口上的路由選擇信息更新。
912
接口配置無(wú)效。已有另一接口與遠(yuǎn)程路由器上的同一接口相連。
913
一個(gè)遠(yuǎn)程訪問(wèn)客戶端試著通過(guò)只保留給路由器的端口進(jìn)行連接。
914
一個(gè)請(qǐng)求撥號(hào)路由器試著通過(guò)只保留給遠(yuǎn)程訪問(wèn)客戶端的端口進(jìn)行連接。
915
具有此名稱的客戶端接口已經(jīng)存在,而且已連接。
916
接口處于停用狀態(tài)。
917
身份驗(yàn)證協(xié)議被遠(yuǎn)程對(duì)等機(jī)拒絕。
918
沒(méi)有可用的身份驗(yàn)證協(xié)議。
919
遠(yuǎn)程計(jì)算機(jī)拒絕使用配置好的身份驗(yàn)證協(xié)議被進(jìn)行身份驗(yàn)證。線路已斷開(kāi)。
920
遠(yuǎn)程帳戶沒(méi)有遠(yuǎn)程訪問(wèn)權(quán)限。
921
遠(yuǎn)程帳戶已過(guò)期。
922
遠(yuǎn)程帳戶已停用。
923
在一天中的這個(gè)時(shí)段中不允許遠(yuǎn)程帳戶登錄。
924
對(duì)遠(yuǎn)程對(duì)等機(jī)器的訪問(wèn)被拒絕,因?yàn)樵谟蛏系挠脩裘?或密碼不正確。
925
沒(méi)有路由選擇許可的端口可讓這個(gè)請(qǐng)求撥號(hào)接口使用。
926
端口已經(jīng)中斷連接,因?yàn)樗幱诜腔顒?dòng)狀態(tài)。
927
此時(shí)無(wú)法到達(dá)接口。
928
請(qǐng)求撥號(hào)服務(wù)處于暫停狀態(tài)。
929
接口已經(jīng)被系統(tǒng)管理員切斷。
930
身份驗(yàn)證服務(wù)器未及時(shí)響應(yīng)身份驗(yàn)證請(qǐng)求。
931
已經(jīng)達(dá)到多重鏈接的連接可使用的最多端口數(shù)。
932
已經(jīng)達(dá)到用戶的連接時(shí)間限制。
933
已經(jīng)達(dá)到支持的 LAN 接口的更大數(shù)目。
934
已經(jīng)達(dá)到支持的請(qǐng)求撥號(hào)接口的更大數(shù)目。
935
已經(jīng)達(dá)到支持的遠(yuǎn)程訪問(wèn)客戶端的更大數(shù)目。
936
由于 BAP 策略,端口已經(jīng)被斷開(kāi)。
937
因?yàn)榇祟愋偷牧硪粋€(gè)連接正在使用,傳入的連接不能接受您的連接請(qǐng)求。
938
網(wǎng)絡(luò)上沒(méi)有找到 RADIUS 服務(wù)器。
939
從 RADIUS 身份驗(yàn)證服務(wù)器收到一無(wú)效的響應(yīng)。請(qǐng)確保 RADIUS 服務(wù)器的區(qū)分大小寫(xiě)的機(jī)密密碼設(shè)置正確。
940
此時(shí)您沒(méi)有連接的權(quán)限。
941
您沒(méi)有使用當(dāng)前設(shè)備類型連接的權(quán)限。
942
您沒(méi)有使用所選身份驗(yàn)證協(xié)議連接的權(quán)限。
943
此用戶需要 BAP。
944
此時(shí)不允許接口連接。
945
保存的路由器配置與當(dāng)前路由器不兼容。
946
RemoteAccess 檢測(cè)到舊版的格式用戶帳戶不會(huì)被自動(dòng)遷移。要手動(dòng)遷移這些,運(yùn)行 XXXX。
948
傳輸已經(jīng)用路由器安裝。
949
從 RADIUS 服務(wù)器的數(shù)據(jù)庫(kù)里收到無(wú)效的簽字長(zhǎng)度。
950
從 RADIUS 服務(wù)器的數(shù)據(jù)包里收到無(wú)效的簽字。
951
沒(méi)從 RADIUS 服務(wù)器跟 EAPMessage 一起收到簽字。
952
從 RADIUS 服務(wù)器收到帶有無(wú)效長(zhǎng)度或 ID 的數(shù)據(jù)包。
953
從 RADIUS 服務(wù)器收到帶有無(wú)效長(zhǎng)度的屬性的數(shù)據(jù)包。
954
從 RADIUS 服務(wù)器收到無(wú)效的數(shù)據(jù)包。
955
身份驗(yàn)證器在來(lái)自 RADIUS 服務(wù)器的數(shù)據(jù)包里不相符。
總的說(shuō) 可能是 突然斷電或關(guān)機(jī) 然后在聯(lián)網(wǎng) 就可能出現(xiàn)這種情況 等等就好 詳細(xì)往下看
寬帶adsl撥號(hào)上網(wǎng)用戶常常遇到的故障提示。寬帶adsl撥號(hào)上網(wǎng)使用pppoe協(xié)議連接,通過(guò)線傳輸數(shù)據(jù),使用adsl專用modem實(shí)現(xiàn)數(shù)據(jù)的調(diào)制解調(diào),提示錯(cuò)誤691真正意義上來(lái)講: 1:域上名出現(xiàn)錯(cuò)誤,(用戶名或密碼輸入錯(cuò)誤)。 2:或?qū)拵У狡谇焚M(fèi)造成。3: 服務(wù)器無(wú)反映,(機(jī)房用戶端口錯(cuò)誤,或帳號(hào)未被激活)。 4:硬件故障
錯(cuò)誤代碼691的故障主要有以下原因:
1、用戶數(shù)據(jù)綁定錯(cuò)誤:為了更好的服務(wù)于用戶,,保障用戶帳號(hào)的安全,電信將寬帶帳號(hào)和用戶的物理端口做了綁定,數(shù)量上也做了一對(duì)一的邦定,這樣,該帳號(hào)只能在一個(gè)物理端口上使用(即限制了ADSL帳號(hào)的漫游),而且一個(gè)端口只限一臺(tái)電腦上網(wǎng),如果用戶的數(shù)據(jù)綁定錯(cuò)誤,撥號(hào)時(shí)也會(huì)出現(xiàn)錯(cuò)誤691的提示。
2、帳號(hào)被他人盜用:在寬帶帳號(hào)沒(méi)有綁定之前,ADSL用戶的帳號(hào)經(jīng)常會(huì)被他人盜用。一旦ADSL寬帶帳號(hào)被他人使用,再次撥號(hào)時(shí),系統(tǒng)也會(huì)出現(xiàn)錯(cuò)誤691的提示。
3、故障時(shí)一定要仔細(xì)判斷,尤其是帳號(hào)前與后的空格,很難分辨出來(lái)。所以當(dāng)出現(xiàn)691錯(cuò)誤時(shí),首先把原來(lái)的帳號(hào)和密碼刪掉,重新輸入正確帳號(hào)及密碼。
4、帳號(hào)欠費(fèi):ADSL寬帶用戶欠費(fèi)后,寬帶接入服務(wù)商會(huì)將該帳號(hào)暫時(shí)停用,用戶交清欠費(fèi)后,帳號(hào)不一定會(huì)馬上啟用,這時(shí)如果撥號(hào),也會(huì)出現(xiàn)錯(cuò)誤691的提示。
5、電腦硬件原因:當(dāng)電腦上安裝了兩塊網(wǎng)卡并且都啟用時(shí)。導(dǎo)致MAC地址邦定錯(cuò)誤,出現(xiàn)691錯(cuò)誤代碼,建議禁用其中一快網(wǎng)卡。
6、電腦禁用網(wǎng)卡后或網(wǎng)卡未驅(qū)動(dòng)或驅(qū)動(dòng)錯(cuò)誤拔號(hào)也會(huì)出現(xiàn)691的提示,檢查網(wǎng)卡是否正常工作。
7、貓(model調(diào)制解調(diào)器)的設(shè)置問(wèn)題,和運(yùn)營(yíng)商聯(lián)系,一般這種問(wèn)題運(yùn)營(yíng)商免費(fèi)包換。
8、有時(shí)在電腦突然斷電時(shí),也會(huì)有此錯(cuò)誤,在開(kāi)機(jī)后,只需等待10分鐘后,就可能會(huì)自動(dòng)解決。
9、使用VPN由于域上的用戶名/密碼無(wú)效而拒絕訪問(wèn)。
以上是個(gè)人在維修電腦時(shí)的不完整的總結(jié)與經(jīng)驗(yàn),如未能幫你解決此問(wèn)題,你可以聯(lián)系當(dāng)?shù)氐碾娦艑拵У倪\(yùn)營(yíng)商,
寬帶線路業(yè)務(wù)電信有專業(yè)的維修人員來(lái)幫你解決。
錯(cuò)誤原因:驗(yàn)證失敗,可能是用戶名口令輸入錯(cuò)誤,請(qǐng)檢查用戶名和口令的拼寫(xiě)及大小寫(xiě)及0與o,1與I等;檢查服務(wù)選項(xiàng)是否選擇正確,一般撥號(hào)使用互聯(lián)網(wǎng)、充值請(qǐng)選擇自服務(wù);也可能是由于上次聯(lián)接非正常斷線導(dǎo)致后臺(tái)系統(tǒng)沒(méi)有收到用戶下線信息而沒(méi)有在用戶在線表中將用戶刪除;也可能PPPOE廣播包被本廣播域內(nèi)的其它PPPOE SERVER截獲,反饋一錯(cuò)誤消息。
緩沖區(qū)溢出攻擊的基本原理是什么?
緩沖區(qū)溢出攻擊是利用緩沖區(qū)溢出漏洞所進(jìn)行的攻擊行動(dòng)。緩沖區(qū)溢出是一種非常普遍、非常危險(xiǎn)的漏洞,在各種操作系統(tǒng)、應(yīng)用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,可以導(dǎo)致程序運(yùn)行失敗、系統(tǒng)關(guān)機(jī)、重新啟動(dòng)等后果。
緩沖區(qū)溢出是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時(shí)超過(guò)了緩沖區(qū)本身的容量,溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。理想的情況是:程序會(huì)檢查數(shù)據(jù)長(zhǎng)度,而且并不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符。但是絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的存儲(chǔ)空間相匹配,這就是為緩沖區(qū)溢出埋下隱患。操作系統(tǒng)所使用的緩沖區(qū),又被稱為堆棧,在各個(gè)操作進(jìn)程之間,指令會(huì)被臨時(shí)儲(chǔ)存在堆棧當(dāng)中,堆棧也會(huì)出現(xiàn)緩沖區(qū)溢出。
緩沖區(qū)溢出是一種非常普遍、非常危險(xiǎn)的漏洞,在各種操作系統(tǒng)、應(yīng)用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,可以導(dǎo)致程序運(yùn)行失敗、系統(tǒng)當(dāng)機(jī)、重新啟動(dòng)等后果。更為嚴(yán)重的是,可以利用它執(zhí)行非授權(quán)指令,甚至可以取得系統(tǒng)特權(quán),進(jìn)而進(jìn)行各種非法操作。緩沖區(qū)溢出攻擊有多種英文名稱:bufferoverflow,bufferoverrun,ashthestack,trashthestack,scribblethestack,manglethestack,memoryleak,overrunscrew;它們指的都是同一種攻擊手段。之一個(gè)緩沖區(qū)溢出攻擊–Morris蠕蟲(chóng),發(fā)生在十年前,它曾造成了全世界6000多臺(tái)網(wǎng)絡(luò)服務(wù)器癱瘓。
1.概念
緩沖區(qū)溢出是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時(shí)超過(guò)了緩沖區(qū)本身的容量溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上,理想的情況是程序檢查數(shù)據(jù)長(zhǎng)度并不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符,但是絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的儲(chǔ)存空間想匹配,這就為緩沖區(qū)溢出埋下隱患.操作系統(tǒng)所使用的緩沖區(qū)又被稱為”堆棧”.在各個(gè)操作進(jìn)程之間,指令會(huì)被臨時(shí)儲(chǔ)存在”堆?!碑?dāng)中,”堆棧”也會(huì)出現(xiàn)緩沖區(qū)溢出。
2.危害
在當(dāng)前網(wǎng)絡(luò)與分布式系統(tǒng)安全中,被廣泛利用的50%以上都是緩沖區(qū)溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲(chóng)。而緩沖區(qū)溢出中,最為危險(xiǎn)的是堆棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯?,在函?shù)返回時(shí)改變返回程序的地址,讓其跳轉(zhuǎn)到任意地址,帶來(lái)的危害一種是程序崩潰導(dǎo)致拒絕服務(wù),另外一種就是跳轉(zhuǎn)并且執(zhí)行一段惡意代碼,比如得到shell,然后為所欲為。
3.緩沖區(qū)攻擊
一.緩沖區(qū)溢出的原理
通過(guò)往程序的緩沖區(qū)寫(xiě)超出其長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。造成緩沖區(qū)溢出的原因是程序中沒(méi)有仔細(xì)檢查用戶輸入的參數(shù)。例如下面程序:
voidfunction(char*str){
charbuffer;
strcpy(buffer,str);
}
上面的strcpy()將直接吧str中的內(nèi)容copy到buffer中。這樣只要str的長(zhǎng)度大于16,就會(huì)造成buffer的溢出,使程序運(yùn)行出錯(cuò)。存在象strcpy這樣的問(wèn)題的標(biāo)準(zhǔn)函數(shù)還有strcat(),sprintf(),vsprintf(),gets(),scanf()等。
當(dāng)然,隨便往緩沖區(qū)中填東西造成它溢出一般只會(huì)出現(xiàn)“分段錯(cuò)誤”(Segmentationfault),而不能達(dá)到攻擊的目的。最常見(jiàn)的手段是通過(guò)制造緩沖區(qū)溢出使程序運(yùn)行一個(gè)用戶shell,再通過(guò)shell執(zhí)行其它命令。如果該程序?qū)儆趓oot且有suid權(quán)限的話,攻擊者就獲得了一個(gè)有root權(quán)限的shell,可以對(duì)系統(tǒng)進(jìn)行任意操作了。
緩沖區(qū)溢出攻擊之所以成為一種常見(jiàn)安全攻擊手段其原因在于緩沖區(qū)溢出漏洞太普遍了,并且易于實(shí)現(xiàn)。而且,緩沖區(qū)溢出成為遠(yuǎn)程攻擊的主要手段其原因在于緩沖區(qū)溢出漏洞給予了攻擊者他所想要的一切:植入并且執(zhí)行攻擊代碼。被植入的攻擊代碼以一定的權(quán)限運(yùn)行有緩沖區(qū)溢出漏洞的程序,從而得到被攻擊主機(jī)的控制權(quán)。
在1998年Lincoln實(shí)驗(yàn)室用來(lái)評(píng)估入侵檢測(cè)的的5種遠(yuǎn)程攻擊中,有2種是緩沖區(qū)溢出。而在1998年CERT的13份建議中,有9份是是與緩沖區(qū)溢出有關(guān)的,在1999年,至少有半數(shù)的建議是和緩沖區(qū)溢出有關(guān)的。在Bugtraq的調(diào)查中,有2/3的被調(diào)查者認(rèn)為緩沖區(qū)溢出漏洞是一個(gè)很嚴(yán)重的安全問(wèn)題。
緩沖區(qū)溢出漏洞和攻擊有很多種形式,會(huì)在第二節(jié)對(duì)他們進(jìn)行描述和分類。相應(yīng)地防衛(wèi)手段也隨者攻擊方法的不同而不同,將在第四節(jié)描述,它的內(nèi)容包括針對(duì)每種攻擊類型的有效的防衛(wèi)手段。
二、緩沖區(qū)溢出的漏洞和攻擊
緩沖區(qū)溢出攻擊的目的在于擾亂具有某些特權(quán)運(yùn)行的程序的功能,這樣可以使得攻擊者取得程序的控制權(quán),如果該程序具有足夠的權(quán)限,那么整個(gè)主機(jī)就被控制了。一般而言,攻擊者攻擊root程序,然后執(zhí)行類似“exec(sh)”的執(zhí)行代碼來(lái)獲得root權(quán)限的shell。為了達(dá)到這個(gè)目的,攻擊者必須達(dá)到如下的兩個(gè)目標(biāo):
1.在程序的地址空間里安排適當(dāng)?shù)拇a。
2.通過(guò)適當(dāng)?shù)某跏蓟拇嫫骱蛢?nèi)存,讓程序跳轉(zhuǎn)到入侵者安排的地址空間執(zhí)行。
根據(jù)這兩個(gè)目標(biāo)來(lái)對(duì)緩沖區(qū)溢出攻擊進(jìn)行分類。在二.1節(jié),將描述攻擊代碼是如何放入被攻擊程序的地址空間的。在二.2節(jié),將介紹攻擊者如何使一個(gè)程序的緩沖區(qū)溢出,并且執(zhí)行轉(zhuǎn)移到攻擊代碼(這個(gè)就是“溢出”的由來(lái))。在二.3節(jié),將綜合前兩節(jié)所討論的代碼安排和控制程序執(zhí)行流程的技術(shù)。
二.1在程序的地址空間里安排適當(dāng)?shù)拇a的方法
有兩種在被攻擊程序地址空間里安排攻擊代碼的方法:
1、植入法:
攻擊者向被攻擊的程序輸入一個(gè)字符串,程序會(huì)把這個(gè)字符串放到緩沖區(qū)里。這個(gè)字符串包含的資料是可以在這個(gè)被攻擊的硬件平臺(tái)上運(yùn)行的指令序列。在這里,攻擊者用被攻擊程序的緩沖區(qū)來(lái)存放攻擊代碼。緩沖區(qū)可以設(shè)在任何地方:堆棧(stack,自動(dòng)變量)、堆(heap,動(dòng)態(tài)分配的內(nèi)存區(qū))和靜態(tài)資料區(qū)。
2、利用已經(jīng)存在的代碼:
有時(shí),攻擊者想要的代碼已經(jīng)在被攻擊的程序中了,攻擊者所要做的只是對(duì)代碼傳遞一些參數(shù)。比如,攻擊代碼要求執(zhí)行“exec(“/bin/sh”)”,而在libc庫(kù)中的代碼執(zhí)行“exec(arg)”,其中arg使一個(gè)指向一個(gè)字符串的指針參數(shù),那么攻擊者只要把傳入的參數(shù)指針改向指向”/bin/sh”。
二.2控制程序轉(zhuǎn)移到攻擊代碼的方法
所有的這些方法都是在尋求改變程序的執(zhí)行流程,使之跳轉(zhuǎn)到攻擊代碼。最基本的就是溢出一個(gè)沒(méi)有邊界檢查或者其它弱點(diǎn)的緩沖區(qū),這樣就擾亂了程序的正常的執(zhí)行順序。通過(guò)溢出一個(gè)緩沖區(qū),攻擊者可以用暴力的方法改寫(xiě)相鄰的程序空間而直接跳過(guò)了系統(tǒng)的檢查。
分類的基準(zhǔn)是攻擊者所尋求的緩沖區(qū)溢出的程序空間類型。原則上是可以任意的空間。實(shí)際上,許多的緩沖區(qū)溢出是用暴力的方法來(lái)尋求改變程序指針的。這類程序的不同之處就是程序空間的突破和內(nèi)存空間的定位不同。主要有以下三種:1、活動(dòng)紀(jì)錄(ActivationRecords):
每當(dāng)一個(gè)函數(shù)調(diào)用發(fā)生時(shí),調(diào)用者會(huì)在堆棧中留下一個(gè)活動(dòng)紀(jì)錄,它包含了函數(shù)結(jié)束時(shí)返回的地址。攻擊者通過(guò)溢出堆棧中的自動(dòng)變量,使返回地址指向攻擊代碼。通過(guò)改變程序的返回地址,當(dāng)函數(shù)調(diào)用結(jié)束時(shí),程序就跳轉(zhuǎn)到攻擊者設(shè)定的地址,而不是原先的地址。這類的緩沖區(qū)溢出被稱為堆棧溢出攻擊(StackSmashingAttack),是目前最常用的緩沖區(qū)溢出攻擊方式。
2、函數(shù)指針(FunctionPointers):
函數(shù)指針可以用來(lái)定位任何地址空間。例如:“void(*foo)()”聲明了一個(gè)返回值為void的函數(shù)指針變量foo。所以攻擊者只需在任何空間內(nèi)的函數(shù)指針附近找到一個(gè)能夠溢出的緩沖區(qū),然后溢出這個(gè)緩沖區(qū)來(lái)改變函數(shù)指針。在某一時(shí)刻,當(dāng)程序通過(guò)函數(shù)指針調(diào)用函數(shù)時(shí),程序的流程就按攻擊者的意圖實(shí)現(xiàn)了。它的一個(gè)攻擊范例就是在Linux系統(tǒng)下的superprobe程序。
3、長(zhǎng)跳轉(zhuǎn)緩沖區(qū)(Longjmpbuffers):
在C語(yǔ)言中包含了一個(gè)簡(jiǎn)單的檢驗(yàn)/恢復(fù)系統(tǒng),稱為setjmp/longjmp。意思是在檢驗(yàn)點(diǎn)設(shè)定“setjmp(buffer)”,用“l(fā)ongjmp(buffer)”來(lái)恢復(fù)檢驗(yàn)點(diǎn)。然而,如果攻擊者能夠進(jìn)入緩沖區(qū)的空間,那么“l(fā)ongjmp(buffer)”實(shí)際上是跳轉(zhuǎn)到攻擊者的代碼。象函數(shù)指針一樣,longjmp緩沖區(qū)能夠指向任何地方,所以攻擊者所要做的就是找到一個(gè)可供溢出的緩沖區(qū)。一個(gè)典型的例子就是Perl5.003的緩沖區(qū)溢出漏洞;攻擊者首先進(jìn)入用來(lái)恢復(fù)緩沖區(qū)溢出的的longjmp緩沖區(qū),然后誘導(dǎo)進(jìn)入恢復(fù)模式,這樣就使Perl的解釋器跳轉(zhuǎn)到攻擊代碼上了。
二.3代碼植入和流程控制技術(shù)的綜合分析
最簡(jiǎn)單和常見(jiàn)的緩沖區(qū)溢出攻擊類型就是在一個(gè)字符串里綜合了代碼植入和活動(dòng)紀(jì)錄技術(shù)。攻擊者定位一個(gè)可供溢出的自動(dòng)變量,然后向程序傳遞一個(gè)很大的字符串,在引發(fā)緩沖區(qū)溢出,改變活動(dòng)紀(jì)錄的同時(shí)植入了代碼。這個(gè)是由Levy指出的攻擊的模板。因?yàn)镃在習(xí)慣上只為用戶和參數(shù)開(kāi)辟很小的緩沖區(qū),因此這種漏洞攻擊的實(shí)例十分常見(jiàn)。
代碼植入和緩沖區(qū)溢出不一定要在在一次動(dòng)作內(nèi)完成。攻擊者可以在一個(gè)緩沖區(qū)內(nèi)放置代碼,這是不能溢出的緩沖區(qū)。然后,攻擊者通過(guò)溢出另外一個(gè)緩沖區(qū)來(lái)轉(zhuǎn)移程序的指針。這種方法一般用來(lái)解決可供溢出的緩沖區(qū)不夠大(不能放下全部的代碼)的情況。
如果攻擊者試圖使用已經(jīng)常駐的代碼而不是從外部植入代碼,他們通常必須把代碼作為參數(shù)調(diào)用。舉例來(lái)說(shuō),在libc(幾乎所有的C程序都要它來(lái)連接)中的部分代碼段會(huì)執(zhí)行“exec(something)”,其中somthing就是參數(shù)。攻擊者然后使用緩沖區(qū)溢出改變程序的參數(shù),然后利用另一個(gè)緩沖區(qū)溢出使程序指針指向libc中的特定的代碼段。
三、緩沖區(qū)溢出攻擊的實(shí)驗(yàn)分析
2023年1月,Cerberus安全小組發(fā)布了微軟的IIS4/5存在的一個(gè)緩沖區(qū)溢出漏洞。攻擊該漏洞,可以使Web服務(wù)器崩潰,甚至獲取超級(jí)權(quán)限執(zhí)行任意的代碼。目前,微軟的IIS4/5是一種主流的Web服務(wù)器程序;因而,該緩沖區(qū)溢出漏洞對(duì)于網(wǎng)站的安全構(gòu)成了極大的威脅;它的描述如下:
瀏覽器向IIS提出一個(gè)HTTP請(qǐng)求,在域名(或IP地址)后,加上一個(gè)文件名,該文件名以“.htr”做后綴。于是IIS認(rèn)為客戶端正在請(qǐng)求一個(gè)“.htr”文件,“.htr”擴(kuò)展文件被映像成ISAPI(InternetServiceAPI)應(yīng)用程序,IIS會(huì)復(fù)位向所有針對(duì)“.htr”資源的請(qǐng)求到I.DLL程序,I.DLL打開(kāi)這個(gè)文件并執(zhí)行之。
瀏覽器提交的請(qǐng)求中包含的文件名存儲(chǔ)在局部變量緩沖區(qū)中,若它很長(zhǎng),超過(guò)600個(gè)字符時(shí),會(huì)導(dǎo)致局部變量緩沖區(qū)溢出,覆蓋返回地址空間,使IIS崩潰。更進(jìn)一步,在如圖1所示的2K緩沖區(qū)中植入一段精心設(shè)計(jì)的代碼,可以使之以系統(tǒng)超級(jí)權(quán)限運(yùn)行。
四、緩沖區(qū)溢出攻擊的防范方法
緩沖區(qū)溢出攻擊占了遠(yuǎn)程網(wǎng)絡(luò)攻擊的絕大多數(shù),這種攻擊可以使得一個(gè)匿名的Internet用戶有機(jī)會(huì)獲得一臺(tái)主機(jī)的部分或全部的控制權(quán)。如果能有效地消除緩沖區(qū)溢出的漏洞,則很大一部分的安全威脅可以得到緩解。
目前有四種基本的方法保護(hù)緩沖區(qū)免受緩沖區(qū)溢出的攻擊和影響。在四.1中介紹了通過(guò)操作系統(tǒng)使得緩沖區(qū)不可執(zhí)行,從而阻止攻擊者植入攻擊代碼。在四.2中介紹了強(qiáng)制寫(xiě)正確的代碼的方法。在四.3中介紹了利用編譯器的邊界檢查來(lái)實(shí)現(xiàn)緩沖區(qū)的保護(hù)。這個(gè)方法使得緩沖區(qū)溢出不可能出現(xiàn),從而完全消除了緩沖區(qū)溢出的威脅,但是相對(duì)而言代價(jià)比較大。在四.4中介紹一種間接的方法,這個(gè)方法在程序指針失效前進(jìn)行完整性檢查。雖然這種方法不能使得所有的緩沖區(qū)溢出失效,但它能阻止絕大多數(shù)的緩沖區(qū)溢出攻擊。然后在四.5,分析這種保護(hù)方法的兼容性和性能優(yōu)勢(shì)。
四.1非執(zhí)行的緩沖區(qū)
通過(guò)使被攻擊程序的數(shù)據(jù)段地址空間不可執(zhí)行,從而使得攻擊者不可能執(zhí)行被植入被攻擊程序輸入緩沖區(qū)的代碼,這種技術(shù)被稱為非執(zhí)行的緩沖區(qū)技術(shù)。在早期的Unix系統(tǒng)設(shè)計(jì)中,只允許程序代碼在代碼段中執(zhí)行。但是近來(lái)的Unix和MSWindows系統(tǒng)由于要實(shí)現(xiàn)更好的性能和功能,往往在數(shù)據(jù)段中動(dòng)態(tài)地放入可執(zhí)行的代碼,這也是緩沖區(qū)溢出的根源。為了保持程序的兼容性,不可能使得所有程序的數(shù)據(jù)段不可執(zhí)行。
但是可以設(shè)定堆棧數(shù)據(jù)段不可執(zhí)行,這樣就可以保證程序的兼容性。Linux和Solaris都發(fā)布了有關(guān)這方面的內(nèi)核補(bǔ)丁。因?yàn)閹缀鯖](méi)有任何合法的程序會(huì)在堆棧中存放代碼,這種做法幾乎不產(chǎn)生任何兼容性問(wèn)題,除了在Linux中的兩個(gè)特例,這時(shí)可執(zhí)行的代碼必須被放入堆棧中:
(1)信號(hào)傳遞:
Linux通過(guò)向進(jìn)程堆棧釋放代碼然后引發(fā)中斷來(lái)執(zhí)行在堆棧中的代碼來(lái)實(shí)現(xiàn)向進(jìn)程發(fā)送Unix信號(hào)。非執(zhí)行緩沖區(qū)的補(bǔ)丁在發(fā)送信號(hào)的時(shí)候是允許緩沖區(qū)可執(zhí)行的。
(2)GCC的在線重用:
研究發(fā)現(xiàn)gcc在堆棧區(qū)里放置了可執(zhí)行的代碼作為在線重用之用。然而,關(guān)閉這個(gè)功能并不產(chǎn)生任何問(wèn)題,只有部分功能似乎不能使用。
非執(zhí)行堆棧的保護(hù)可以有效地對(duì)付把代碼植入自動(dòng)變量的緩沖區(qū)溢出攻擊,而對(duì)于其它形式的攻擊則沒(méi)有效果。通過(guò)引用一個(gè)駐留的程序的指針,就可以跳過(guò)這種保護(hù)措施。其它的攻擊可以采用把代碼植入堆或者靜態(tài)數(shù)據(jù)段中來(lái)跳過(guò)保護(hù)。
四.2編寫(xiě)正確的代碼
編寫(xiě)正確的代碼是一件非常有意義的工作,特別象編寫(xiě)C語(yǔ)言那種風(fēng)格自由而容易出錯(cuò)的程序,這種風(fēng)格是由于追求性能而忽視正確性的傳統(tǒng)引起的。盡管花了很長(zhǎng)的時(shí)間使得人們知道了如何編寫(xiě)安全的程序,具有安全漏洞的程序依舊出現(xiàn)。因此人們開(kāi)發(fā)了一些工具和技術(shù)來(lái)幫助經(jīng)驗(yàn)不足的程序員編寫(xiě)安全正確的程序。
最簡(jiǎn)單的方法就是用grep來(lái)搜索源代碼中容易產(chǎn)生漏洞的庫(kù)的調(diào)用,比如對(duì)strcpy和sprintf的調(diào)用,這兩個(gè)函數(shù)都沒(méi)有檢查輸入?yún)?shù)的長(zhǎng)度。事實(shí)上,各個(gè)版本C的標(biāo)準(zhǔn)庫(kù)均有這樣的問(wèn)題存在。
此外,人們還開(kāi)發(fā)了一些高級(jí)的查錯(cuò)工具,如faultinjection等。這些工具的目的在于通過(guò)人為隨機(jī)地產(chǎn)生一些緩沖區(qū)溢出來(lái)尋找代碼的安全漏洞。還有一些靜態(tài)分析工具用于偵測(cè)緩沖區(qū)溢出的存在。
數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小,如何解決數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小問(wèn)題?,錯(cuò)誤691?,緩沖區(qū)溢出攻擊的基本原理是什么?的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
分享題目:如何解決數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小問(wèn)題?(數(shù)據(jù)庫(kù)字符串緩沖區(qū)太小)
網(wǎng)址分享:http://m.5511xx.com/article/djcechs.html


咨詢
建站咨詢
