




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于sql注入web數(shù)據(jù)安全防范和優(yōu)化摘要:sql注入利用數(shù)據(jù)庫系統(tǒng)的安全漏洞,以及程 序中的驗證漏洞,構(gòu)造合適的sql語句,并通過正常的url 訪問進(jìn)行代碼提交,獲取數(shù)據(jù)庫中的相關(guān)信息,從而實現(xiàn)網(wǎng) 站攻擊的目的。加強(qiáng)用戶提交數(shù)據(jù)的合法性驗證,是防止sql 注入的基本方法。而改善asp中的request函數(shù),使其具有 對一切用戶數(shù)據(jù)進(jìn)行合法驗證的能力,是sql注入威脅下, web數(shù)據(jù)安全防范方法的最佳優(yōu)化。關(guān)鍵詞:sql注入;數(shù)據(jù)安全;防范;優(yōu)化中圖分類號:tp309. 5文獻(xiàn)標(biāo)識碼:a文章編號: 1009-3044 (2014) 10-2184-04abstract: exploiting
2、the security vulnerabilities of database system and validation vulnerabilities of the computer programs, sql injection builds proper sql statements, submit code by normal url access and get relevant infonnation from the database in order to achieve the goal of website attacks it is the basic approac
3、h of preventing sql injection to strengthen the legality verification while a user submits dato. and under the sql injection threat , it is the best optimization of web data safety precautions to improve the request function of asp so as to make it capable to verify the legality of all user data.key
4、 words :sql-injection ; data security ;precaution; optimization在當(dāng)前各類網(wǎng)站建設(shè)或者基于web平臺的軟件系統(tǒng)建設(shè)(以下統(tǒng)稱網(wǎng)站)中,由于從事開發(fā)的人員的水平與經(jīng)驗, 參差不齊,這就直接導(dǎo)致許多網(wǎng)站,都存在著一定程度上的 安全隱患,給黑客的攻擊留有可趁之機(jī),嚴(yán)重威脅著網(wǎng)站的 正常運行。尤其是如果釆用sql注入進(jìn)行攻擊的話,由于該 方法靈活多變,對網(wǎng)站的安全性具有更高的考驗。并且,這 種注入是通過www端口實現(xiàn)的,跟對網(wǎng)站的web頁面的正常 訪問是一樣的,因此,這種注入還能繞過許多防火墻的監(jiān)控, 具有很強(qiáng)的隱蔽性。各種原因使然,國內(nèi)目
5、前絕大部分的網(wǎng)站,都采用asp 技術(shù),以access或者sql-server為數(shù)據(jù)庫。因此,筆者以 此為技術(shù)平臺,分析sql注入的安全威脅、防范對策以及深 入的優(yōu)化策略。1 sql注入的基本原理所謂sql注入,是指利用網(wǎng)站程序?qū)τ脩糨斎霐?shù)據(jù)的合 法性驗證中存在的漏洞,構(gòu)造合適的sql語句,并通過正常 的url訪問提交此代碼,從而獲取并借肋網(wǎng)站數(shù)據(jù)庫中的相 關(guān)信息,達(dá)到攻擊的目的。這種注入隨著攻擊者的sql語句 構(gòu)造能力愈強(qiáng),變化也愈巧妙,對網(wǎng)站的開發(fā)者在數(shù)據(jù)安全 防范方面的意識與能力,挑戰(zhàn)性也就愈強(qiáng)。sql注入通常有以下四個特征:1)利用用戶輸入數(shù)據(jù)的合法性驗證漏洞進(jìn)行突破。這 與許多黑客攻擊
6、直接利用服務(wù)器的安全漏洞進(jìn)行網(wǎng)站攻擊 有本質(zhì)的不同。2)應(yīng)變性強(qiáng)。能夠根據(jù)不同的數(shù)據(jù)庫結(jié)構(gòu),構(gòu)造出不 同的sql語句,巧妙靈活;3)相關(guān)的攻擊代碼,通過web端口,伴隨著正常的頁 面訪問進(jìn)行注入,不直接與防火墻或其它安全防范軟件進(jìn)行 “硬接觸” o4)access數(shù)據(jù)庫與sql-server數(shù)據(jù)庫一個共同的特點: 如果參與運算的數(shù)據(jù)的數(shù)據(jù)類型不正確,就先嘗試進(jìn)行數(shù)據(jù) 類型轉(zhuǎn)換,如果轉(zhuǎn)換失敗,會返回一個錯誤報告。sql注入 正是利用這個特點,故意提交一些錯誤類型的數(shù)據(jù),“誘 惑”數(shù)據(jù)庫自覺犯錯并報錯,從而泄露了重要信息。這一點, 也是sql注入最重要的特征。我們舉例實際分析一下sql注入的基本原
7、理。我們設(shè)定 網(wǎng)站的測試服務(wù)器地址為:http: /127. 0. 0. 1,測試的url 為:http: /127. 0. 0. l/art_detail. asp? id=8o通過瀏覽器的地址欄輸入以上url,并在最后加上一個 單引號,使其成為 http: /127. 0. 0. l/art_detail. asp?id二8,然后再次訪問。這時,如果服務(wù)器在瀏覽器中返回 以下信息:microsoft jet database engine 錯誤 '80040el4' 字符串的語法錯誤 在查詢表達(dá)式'id=8''中。/art_detail. asp,
8、行 9那么,根據(jù)這個返回的錯誤信息就可以作出以下判斷:1)該網(wǎng)站存在sql注入的安全漏洞,這是最基本的判 斷;2)該網(wǎng)站的數(shù)據(jù)庫是ms-access,并且連接數(shù)據(jù)庫的引 擎是jet;3)該頁面使用的數(shù)據(jù)表中,有一個字段的名稱是id;由此可見,如果網(wǎng)站程序?qū)τ脩舻妮斎胄畔]有嚴(yán)格的 合法性驗證的話,僅在一個url后附加一個簡單的符號,就 可能試探出許多服務(wù)器及數(shù)據(jù)庫中的信息,獲取需要的資 料。這就是sql注入的基本原理。2 access數(shù)據(jù)庫的sql注入與防范對策access數(shù)據(jù)庫盡管存在著各種各樣的安全漏洞,但是由 于其方便、靈活的性能以及目前國內(nèi)網(wǎng)站的實際需要,許多 網(wǎng)站,依然是采用acce
9、ss作為數(shù)據(jù)庫。而針對access數(shù)據(jù) 庫,利用sql注入進(jìn)行網(wǎng)站攻擊的方法,主要有單引號探測 法與1=1, 1=2探測法兩種。這兩種方法基本都是利用了數(shù) 據(jù)庫對錯誤數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行運算時,有自動轉(zhuǎn)換數(shù)據(jù)類型的特點,因此,在數(shù)據(jù)安全防范對策上,也主要是從阻止 這種自動轉(zhuǎn)換出發(fā)。2.1單引號探測法無論是哪一種sql注入方法,尋找注入點都是第一點。 因此,在防范策略上也主要是從注入點著手,把存在的注入 點都消除了,也就意味著堵住了 sql注入的唯一途徑。在眾多的注入點探測法中,單引號探測法是比較基本、 簡單的一種方法。其操作方法就是在帶有訪問參數(shù)的網(wǎng)址后 面,附加一個單引號提交給服務(wù)器,再從服務(wù)
10、器返回的錯誤 信息中,分析、獲取需要的資料,然后決定如何構(gòu)造進(jìn)一步 的注入語句。它主要利用的漏洞就是程序員在驗證用戶輸入 數(shù)據(jù)時,沒有過濾掉特殊字符。因為在帶有訪問參數(shù)的網(wǎng)址 中,如 http: /127. 0. 0. l/art_detail. asp? id=8,當(dāng)程序 收到這串url時,它必定向數(shù)據(jù)庫進(jìn)行一個id=8的查詢操 作,比如有可能是:dim v_idv_id=request. querystring "id"sqlst" select * from #table_name where id二"&v_id在大多數(shù)情況下,id字段的數(shù)
11、據(jù)類型是“數(shù)字型”或“數(shù)值型”。如果攻擊者在后面附加一個單引號,變成id=8后面的“8 ”就不再是“數(shù)字”或“數(shù)值”,而是“字符串” 了。在這種情況下,數(shù)據(jù)庫就會嘗試把這個“字 符串型”轉(zhuǎn)換成“數(shù)值型”,當(dāng)然,這樣的的轉(zhuǎn)換一定會失 敗,相關(guān)的查詢也就沒辦法完成。于是,服務(wù)器便會向客戶 端的瀏覽器返回以下信息:microsoft jet database engine 錯誤 '80040el4' 字符串的語法錯誤 在查詢表達(dá)式'id=8''中。/art_detail. asp, 行 9這就是上文所述的情況了。當(dāng)然,對這種情況,我們的防范措施也是比較簡單有且
12、 有效的。第一種方法是對用戶端提交來的數(shù)據(jù),在程序上先進(jìn)行 數(shù)據(jù)類型轉(zhuǎn)換,避免直接交給數(shù)據(jù)庫進(jìn)行轉(zhuǎn)換。如:v_id=request. querystring "id"改為:v_id=cint (:request. querystring “id")這樣,如果提交上來的id值,不是“數(shù)值型”的話, 就在執(zhí)行這個語句時,直接報錯,而不再把數(shù)據(jù)提交給數(shù)據(jù) 庫,從而避免由于數(shù)據(jù)庫處理時報錯而泄露相關(guān)信息。第二種方法是采用過濾法,對用戶提交上來的數(shù)據(jù)中, 可能存在的特殊字符,先過濾掉,再提交給數(shù)據(jù)庫進(jìn)行下一 步的操作。例如定義一個過濾函數(shù)如下:然后,對用戶提交上來的數(shù)據(jù),先
13、執(zhí)行一下過濾操作:v_id= ( replacebadword ( request. querystring (” id” )這樣,就可以使用戶數(shù)據(jù)中存在的特殊字符,在進(jìn)行數(shù) 據(jù)庫查詢之前,全部過濾掉。強(qiáng)制性地將不合法的數(shù)據(jù)類型, 轉(zhuǎn)換為合法類型。2.2 1=1與1=2探測法1=1與1=2探測法是access平臺中另一種比較常見的注 入點試探法。盡管在sql-server數(shù)據(jù)庫平臺中,這種方法 也依然適用,但由于在sql-server平臺中,有另一種更高 效的探測法,因此,這種方法,主要針對access平臺使用。該法的試探語句如下:http: /127. 0. 0. l/art_deta訂.a
14、sp? id=8; and 1=1 http: /127. 0. 0. l/art_detail. asp? id=8; and 1-2 提交訪問以后,無論是添加了 1=1還是1=2,只要瀏覽 器中返回的結(jié)果跟正常url是一樣的,或者雖然不一樣,但 并沒有返回一個由程序員自定義的錯誤信息,那么,就可以 判定這個網(wǎng)站是存在安全漏洞的,可以通過構(gòu)造sql語句, 進(jìn)行注入。這是利用了運算符的運算優(yōu)先級不同而構(gòu)造的sql注入 語句。因為1=1的結(jié)果是true,而1=2的結(jié)果是false。再 運行下一級運算時,就是id=8 and true, id=8 and false。最后,這兩個url就變成了:h
15、ttp: /127. 0. 0. 1/art_detail. asp? id二truehttp :/127. 0. 0. 1/art_detail. asp ? id=false至此,我們已經(jīng)可以看到,這種探測法實際上還是利用了數(shù) 據(jù)庫在操作時,如果參與操作的數(shù)據(jù)類型錯誤,就自動轉(zhuǎn)換 類據(jù)類型,如果轉(zhuǎn)換出錯,就返回報錯信息的原理。因此, 在防范對策上,我們依然是在信息提交到數(shù)據(jù)庫之前,先由 程序進(jìn)行數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換,即使轉(zhuǎn)換出錯,也只向客戶 端返回程序錯誤報告,而不會返回數(shù)據(jù)庫錯誤報告。數(shù)據(jù)庫 的相關(guān)信息資料,也就不會隨著錯誤報告泄露。3 ms sql-server數(shù)據(jù)庫的sql注入威脅與防
16、范對于access平臺適用的注入點探測法,基本也適用于 sql-servero但是,由于sql-server數(shù)據(jù)庫管理系統(tǒng)具有 更嚴(yán)謹(jǐn)、更復(fù)雜的系統(tǒng)性能,因此,也給網(wǎng)站攻擊者留下有 別于access的注入漏洞。特別是在服務(wù)器的iis提示沒有 關(guān)閉的情況下,sql-server中的一些系統(tǒng)變量中的信息,更 是網(wǎng)站數(shù)據(jù)安全的最大隱患。3. 1 user>0探測法該探測法就是利用了 sql-server中的一個系統(tǒng)變量 user中的信息,通過構(gòu)造一個錯誤的sql語句,“誘惑"數(shù) 據(jù)庫系統(tǒng)不自覺地泄露重要數(shù)據(jù)。user在ms sql-server數(shù)據(jù)庫系統(tǒng)中,是一個重要的系 統(tǒng)變量,類
17、型是可變長度unicode (nvarchar),保存的是 當(dāng)前連接數(shù)據(jù)庫的用戶名。當(dāng)然,通常情況下,攻擊者是不 知道這個用戶名的。但是在user>0探測法,卻是比較容易 破解的。只要把正常訪問url改為:http : /127. 0. 0. l/art_detail. asp? id=8; and user>0這個url分號之前的內(nèi)容,是正確的。但是當(dāng)服務(wù)器遇 到user>0這段語句,而數(shù)據(jù)庫又恰好是sql-server時,這 就相當(dāng)于用一個nvarchar類型的數(shù)據(jù)與一個int類型的數(shù) 據(jù),進(jìn)行比較運算。系統(tǒng)就會嘗試把user中的數(shù)值轉(zhuǎn)換成 irit型,由于絕大多數(shù)情況下
18、,user中保存的數(shù)據(jù)都不會是 純數(shù)字,因此,這種轉(zhuǎn)換是失敗的。于是,sql-server就會 把錯誤報告返回到客戶端:將nvarchar值"lsx"轉(zhuǎn)換數(shù) 據(jù)類型為int時發(fā)生語法錯誤!“l(fā)sx”就是系統(tǒng)變量user的值了,也就是當(dāng)前數(shù)據(jù)庫 的用戶名。如果返回信息中,這個值是“dbo”的話,那安 全隱患就更大。因為這說明該網(wǎng)站的數(shù)據(jù)庫是用sa這個用 戶登陸連接的。而sa的是一個幾乎與administrator具有 同樣權(quán)限的用戶。解決這個安全隱患的方法有兩種。一是在構(gòu)建網(wǎng)站的服 務(wù)器時,把iis提示關(guān)閉,這樣即使是產(chǎn)生了數(shù)據(jù)庫層面的 錯誤,也不會向客戶端返回相關(guān)的報告。方
19、法二還是回到數(shù) 據(jù)的合法性驗證上,構(gòu)造合適驗證函數(shù),對提交上來的相關(guān)信息,進(jìn)行驗證或轉(zhuǎn)換,避免沒有任何的檢查就直接向數(shù)據(jù) 庫提交。3.2系統(tǒng)表探測法如果通過3.1中的方法,成功探測到數(shù)據(jù)庫是用“sa” 用戶登陸的話,那么,再利用系統(tǒng)表的探測法,依托 sql-server與操作系統(tǒng)之間的各種聯(lián)系依賴,就幾乎可以全 面突破網(wǎng)站的數(shù)據(jù)安全防線。在sql-server系統(tǒng)中,有一張名為sysobjects的系統(tǒng) 表,數(shù)據(jù)庫中的表名、視圖、約束及其它對象都存儲在該表 中。并且在web環(huán)境下,這張表是具有可讀權(quán)限的。那么,經(jīng)過以下注入步驟,攻擊者就可以將網(wǎng)站的數(shù)據(jù) 全部獲取。1) http: /127.
20、0. 0. 1/art_detai 1. asp? id=7; exec master. xp_cmdshell “net user new_user new_pw /add"在sql-server系統(tǒng)中,分號的作用是劃分語句。因此, 系統(tǒng)會將從數(shù)據(jù)庫中查詢出id=7的記錄。然后,通過存儲 過程xp_cmdshell調(diào)用系統(tǒng)命令net,給操作系統(tǒng)加一個名 稱為new_user,密碼為new_pw的系統(tǒng)用戶。2) http: /127. 0. 0. l/art_detail. asp? id二7; exec masterxpcmdshell “net localgroup newuse
21、r administrators /addv這段代碼一旦注入成功,就意味著剛才新添加的 new_user用戶被攻擊者添加到了數(shù)據(jù)庫的管理員組,即具備 了管理數(shù)據(jù)庫的一切權(quán)限。3) http: /127. 0. 0. l/art_detail.asp? id=l ; anddb_name () >0這里又一次利用了系統(tǒng)變量db_name (),這個變量中保存的是網(wǎng)站連接的數(shù)據(jù)庫名稱。因為這個名稱是字符串型 的,而代碼中的>0是一種比較運算,于是,系統(tǒng)就會被“誘 惑”將系統(tǒng)變量中的值先轉(zhuǎn)成整型,這種轉(zhuǎn)換必定會失敗, 并將錯誤的信息返回給客戶端。而當(dāng)中所保存的數(shù)據(jù)庫名,就隨著這些信息一起
22、顯示在瀏覽器中。數(shù)據(jù)庫的名稱都已經(jīng)暴露了,如果注入者再探出數(shù)據(jù)庫的路徑的話,網(wǎng)站數(shù)據(jù)庫就是毫無安全可言了。即將沒有辦 法探出數(shù)據(jù)庫的路徑,依然可以通過以下步驟,不斷地構(gòu)造 錯誤的sql代碼,誘惑系統(tǒng)自行暴露相關(guān)的數(shù)據(jù)。1) http: /127. 0. 0. 1/art_detai 1. asp? id=l ; and(select top 1 name from sysobjects where xtype=, u, and status>0) >0xtype二'it and status。,表示用戶建立的表名。用(四)中的語句,把sysobjects系統(tǒng)表中保存的第一張
23、數(shù) 據(jù)表名與0進(jìn)行相比較,誘惑數(shù)據(jù)庫系統(tǒng)出錯、報錯,返回 正確的數(shù)據(jù)表名。當(dāng)然,同樣的方法,其他數(shù)據(jù)表名也都不 難試探出來,只要把top 1把為2, 3即可。2) http: /127. 0. 0. l/art_deta 訂.asp? id=l ; and(selec t top 1 col_nanie (ob jec t_ id ('t_ name,),1) fromsysobjects) >0知道了數(shù)據(jù)表的名稱,就可以用上面的代碼探得該表中的字段名。object_id (4 t_name)返 回該表名對應(yīng)的內(nèi)部id。col_name (t_name id, 1)即返回 t_n
24、ame表中第一個字段的名稱,把1改為2,就是第二個字 段名,依此類推。至此,我們可見,如果防范措施不當(dāng),系統(tǒng)表有時簡直就是數(shù)據(jù)安全最大的威脅,只要稍作“誘惑”,就會把網(wǎng)站 的數(shù)據(jù)全盤托出。4防止sql注入的防范優(yōu)化無論是access還是sql-server,也無論是哪一種sql 注入點探測法,其實都是利用了用戶提交的數(shù)據(jù)在驗證中不 嚴(yán)謹(jǐn)?shù)穆┒?。但是,簡單地采用前面所提及的特殊字符替換、 驗證方法,也并非絕對安全,因為注入者還可以通過一些字 符轉(zhuǎn)換函數(shù),將特殊字符函數(shù)化以后,混在url中提交,例 如在ascii編碼中,35是#對應(yīng)的數(shù)值,那么用chr (35) 函數(shù),替代#號,就繞過了程序中的特
25、殊字符驗證。因此,還必須有更高的安全防范優(yōu)化方法。具體的優(yōu)化 方法可以有以下兩種:1)重要的數(shù)據(jù),采用加密法存儲。如用戶表中的個人 信息,盡可能采用md5加密法加密后保存,這樣,即使被 試出相關(guān)信息,返回的,也都是加密后的數(shù)據(jù),而md5是不 可逆的。這種方法,主要是杜絕攻擊者獲取網(wǎng)站的用戶信息, 從而造成破壞。2) sql注入點探測方法之所以能夠成功,最根本的原因 在于asp中request函數(shù)的安全漏洞。因為這個函數(shù)只負(fù)責(zé) 獲取客戶端提交上來的數(shù)據(jù),對數(shù)據(jù)的合法性卻無法判別, 而注入者可能構(gòu)造出來的sql語句又是變化多樣,程序員很 難在編寫驗證程序時,考慮到每一種情況,這就導(dǎo)致數(shù)據(jù)庫 系統(tǒng)會
26、被注入語句的“故意性數(shù)據(jù)類型錯誤”誘惑,自動轉(zhuǎn) 換數(shù)據(jù)類型,并報錯,從而泄露了重要信息。因此,改造 request函數(shù),提高其安全性能,保證才是杜絕sql注入的 最根本之法。改造優(yōu)化以后的request函數(shù)如下:function my_request (cs_name, cs_datatype)'cs_name:參數(shù)名稱-字符型'cs_datatype:參數(shù)的數(shù)據(jù)類型-數(shù)字型(1表示 cs_name是數(shù)字,0表示cs_name是字符)dim cs_valuecs_value =request (cs_name)if cs_datatype =1 thenif not isnum
27、eric (cs_value) thenresponse, write "所提交的數(shù)據(jù)"& cs_name & "必須為數(shù)字型!”response.endend ifelsecs_value =replace (cs_value, ”“ “ “)end ifmy_request 二 cs_valueend function通過調(diào)用這個函數(shù),我們可以對用戶提交的一切數(shù)據(jù)在 提交階段就進(jìn)行驗證,只要提交到服務(wù)器的數(shù)據(jù)與其必須對 應(yīng)的數(shù)據(jù)類型不一致,就在返回程序中的錯誤報告,而不再 向數(shù)據(jù)庫提交任何操作請求,從而把一切sql注入點的試探 拒之于數(shù)據(jù)庫門外。5結(jié)束語加強(qiáng)網(wǎng)站數(shù)據(jù)安全的保護(hù)與防范,是所有網(wǎng)站程序員必 須面對的問題。在access或者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 入戶維修調(diào)研報告范文
- 熱成型實驗報告范文
- 2025年度智慧城市建設(shè)合作協(xié)議解除合同書
- 二零二五年度網(wǎng)絡(luò)游戲押金轉(zhuǎn)讓與賬號安全保障協(xié)議
- 二零二五年度平面模特時尚雜志封面拍攝合同書
- 二零二五年度獵聘市場營銷人才委托協(xié)議
- 二零二五年度輪胎品牌授權(quán)與銷售代理合同
- 二零二五年度交通事故保險賠償協(xié)議書(含事故調(diào)查服務(wù))
- 2025年度社區(qū)餐飲合伙經(jīng)營與社區(qū)服務(wù)合同
- 二零二五年度農(nóng)村土地流轉(zhuǎn)合同轉(zhuǎn)讓與生態(tài)保護(hù)協(xié)議
- 企業(yè)人力資源內(nèi)部審核檢查表
- 《素描》課件-第一章 素描入門
- GB/T 42828.1-2023鹽堿地改良通用技術(shù)第1部分:鐵尾砂改良
- 工資條(標(biāo)準(zhǔn)模版)
- 第四講 搜索引擎檢索
- 法語的發(fā)音規(guī)則及法語單詞分類記憶
- 衛(wèi)生和微生物基礎(chǔ)知識培訓(xùn)-
- ICU輪轉(zhuǎn)護(hù)士培訓(xùn)計劃和手冊
- GB/T 9787-1988熱軋等邊角鋼尺寸、外形、重量及允許偏差
- GB/T 17614.1-2015工業(yè)過程控制系統(tǒng)用變送器第1部分:性能評定方法
- 財務(wù)工作督導(dǎo)檢查記錄表
評論
0/150
提交評論