① 網路安全需要學什麼
網路安全是一個很廣的方向,現在市場上比較火的崗位有:安全運維、滲透測試、web安全、逆向、安全開發、代碼審計、安服類崗位等。根據崗位不同工作上需要的技術也有部分差異。
如果編程能力較好,建議可以從事web安全、逆向、代碼審計、安全開發等崗位。如果對編程沒興趣,可以從事安全運維、滲透測試、web安全、網路安全架構等工作。
如果要學習全棧的安全工程師,那麼建議學習路線如下:
1. 學習網路安全:路由交換技術、安全設備、學會怎麼架構和配置一個企業網路安全架構
2. 學習系統安全:windows系統和Linux系統、如伺服器的配置部署、安全加固、策略、許可權、日誌、災備等。客戶端的安全加固等
3. 學習滲透攻防:信息收集技術、社會工程學、埠檢測、漏洞挖掘、漏洞驗證,惡意代碼、逆向、二進制等。
4. 學習web安全:sql注入、XSS、CSRF、上傳漏洞、解析漏洞、邏輯漏洞、包含漏洞等挖掘及修復
5. 學習安全服務類:風險評估、等級保護、安全咨詢、安全法律法規解讀等
6. 學習CTF技術:有過CTF經驗一定會是企業最喜歡的一類人才
零基礎也可以學習的
② C語言和JAVA哪個好點。我想學網路安全工程師,需要具備這些嗎。要是需要該怎麼學C語言。步驟說下。謝謝
我感覺是這樣的:java是功能軟體開發商都幫你做得很好,簡單易用,適合團隊協作,高速開發,目前主流的語言是java。
c更加貼近硬體,程序員自己的自由度較大,當然也更難,在追求程序運行的速度的時候,很多情況都用c。兩者不是不可調和的,混著用的情況也是有的。
每種語言既然存在,都是有用處的•••
③ C語言 編程 攻防技術 從何學起
從最基礎的開始。操作系統、數據結構、編譯原理,TCP/IP等等。C只是個語言而已(工具會用不難,難的是怎麼用這工具來創造一個東西而已,要是創造很簡單的話,那中國也不會有這么多IT民工了,呵呵,扯遠了……),所涉及的知識點用紙頭寫出來也就那C語言寶典的CHM這么多,如果其他的原理性的東西不了解這些的話剩下的全是白搭。
想入門的話估計前兩三年基本都會撲在跟這個看似毫不相關的東西上面,但學好了那些看似不相乾的東西之後,回頭再看這些東西會覺得也就是這樣,之後就是稍微參考些相關手冊什麼的看看編編也就出來了。不過,能真把這些東西都啃下來的人估計他也是可以在軟體公司里拿個10k的吧,呵呵。
操作系統是必須要學的,其實攻擊攻的也是操作系統,黑客什麼的也不就是不斷獲得操作系統更高的許可權直到最頂級的管理員么。編譯原理,你知道編譯器怎麼轉換源碼的,你也會知道許多其他不該知道的東西:P 。TCP/IP是網路的基礎,你總不見得要沖到人家家裡去進行登錄吧……數據結構+演算法=程序。這說法曾經代代相傳(不過現在主流是面向對象了),對底層的來說,有些東西是不得不學的,就像最典型的所謂的緩沖區溢出也就是利用了數組越界而已
爬山總不可能一下子跳到山頂,總要一步步走上去,但問題是你能不能耐得住這性子,而且吃不吃得下那些知識。
還有,編程是個體力活,邊看書邊敲代碼已經被許多人證實是一個學習的最佳捷徑,基本上學成的都是敲出來的,而學搓的都是沒敲的,一遍不懂,三遍背下,以後實踐中慢慢體會,後面就豁然開朗,任督二脈相通X@$%!@^……
還有還有,1L 匯編語言是需要的 但8086就不用限定了,按80486的後面是奔騰來算,現在的CPU應該都已經是80986了吧:P。匯編找本32位計算機原理或者單片機看看也行,這樣還能加深對計算機的理解。
④ C語言怎麼學
淺談C語言學習方法
本人是一名windows程序寫作員,使用的語言是C語言.其他語言了解一點點,但並不擅長.可能對於初學者來說,首先就是選擇一門程序設計語言.當然,今天我將要說的不是這方面.每種語言都有它所擅長的領域與層面.當然對於其他非C語言我是一名門外汗,我也不會站在C語言的立場去談論其他任何一門語言.好了,在開始進入正題之前,我想談談個人對C的一些看法:
C語言是一種早期的計算機語言,最初誕生目的是為了提供一種基於UNIX系統的工作語言.但是,後來卻被越來越多的人發現它的優點與潛力.C本身比較接近底層,適合開發系統軟體甚至是操作系統.我個人也認為它是界於高級語言與匯編語言之間的中級語言.C語言是一門結構化語言(我認為主要是指它的控制結構如:if if-else while for等等).C程序設計上有提到"自頂向下,逐步深入".以函數為原子功能模塊.對於大型的程序來說模塊化是很重要的,有一句話說的很好"優質的程序首先就是便與人們之間的相互討論與交流,其次才是執行效率".當然我個人認為任何一名程序寫作者,都應該養成一種特定的思維方式,以程序的思維方式來思考程序的實現.前提就是要足夠的來了解計算機底層技術.要不我想就連學習都是很困難的,凡事都是一個思路的問題嘛.標準的來衡量,C應該算是高級語言陣營的一份子.可很多有C語言開發經驗的程序寫作者.通常親切的稱C為界於底級語言與高級語言之間的中級計算機語言.當然不是因為C比高級語言要差,之所以這么認為是因為C既具有高級語言的結構化與可理解性又具有低級語言的高效率.同時C的移植性也是非常不錯的,大家應該知道,越是接近硬體,接近底層的語言就越加的依賴硬體環境,也就是我們所說的設備相關性.C這一點做的是非常棒的.說了這些,在從另一個角度去分析C語言.當然每種語言都有它自身的優缺點,C也一樣.比如在現在高級語言與頂層技術的角度來看的話,C最大的缺陷就是Data與演算法的分離.舉一個例子: 對於一個擁有幾千行甚至上萬行Code的程序來說,如果修改Data,比如我在Structure中增加一個欄位,可能為此我的整個程序都要改動,這使得程序的可重用性大大降低.開發周期也大大的延長.但是在底層的角度來看這也正是C的優點.我為什麼要這么說呢?我個人認為在求解與實現一個小問題的時候,我們可以寫出一個通用的模塊處理不同的Data.當然比如某些經常用到的,基於數據結構的一些常用演算法我們可以寫出來在開發的時候我們可以直接把預先編寫的模塊插入到我們的程序中去,這不也是大大低了開發周期嗎?初學者完全可以根據自己的需求來編寫一個自定義庫.好了,說了這些,有些地方我理解錯了,還請各位指出來,交流是很重要的,前提是要把自己的心態放平.下面我將談論本問的重點,也就是如何來學習C語言,是給那些初學者讀的.
正題部分:
有人可能會說:學習還用你教啊,誰沒上過學啊.其實我今天要說的只是,站在一個過來人的角度,來分析與解釋學習C語言的過程中比較困難的地方.當然我個人也會對比較具體的問題進行解釋(個人看法).我一直在強調個人看法,我是想讓大家明白,對於同一個問題大家可能都很難達成統一的意見,希望批評的時候客氣點就好嘍!
初學者該看哪些書來入門:
在學習C語言之前,首先就要選擇一本教材,對於初學者,我個人並不建議去讀電子書籍,最好是買紙質書來學習.比如比較有名的"C程序設計"就很不錯,尤其是第二版.我也看過,比較適合中國人來初學.整本書都在全面系統的講解C的語法結構,構成C的語言元素包括:數據類型,支持的運算符,標識符(是由程序員按照命名規則起的名字,用於變數名,函數名,宏名等等),關鍵字(編譯系統用於實現C內部功能的詞,比如:轉向goto和中斷break等等)等.看完這本書你基本上可以寫一些簡單的小程序,當然是DOS下的程序.如果你想在進一步深入學習C的話,可以看"C陷阱與缺陷"這本書.寫這本書的作者是在Bell工作對C是非常精通的,應該算是大師級的人物了.如果你暫時不想深入C的話,也沒問題,因為此時你完全可以把C當作一種編程工具來使用,你要做的就是多寫Code來讓自己熟悉C語言.經驗是非常重要的,"經驗是檢驗真理的唯一方法".當然你不會紙上談兵,如果你有過多的開發經驗的話,就知道在紙上或最初的設想的Code拿到計算機上來實現,最終會發現有很多地方都是不合理的,之前是沒有辦法想像到的.在初學C的過程中,比如你會看"C程序設計"來初學C,當你學完每一章的時候要把習題來完成,這里就是考驗你學到的知識了,看看你應用能力怎麼樣?尤其是程序設計題目,比較有意思.哪裡不懂了.可以翻回去看書中的解釋.如果沒有解釋或你還是不明白,可以去問別人,與其他人交流. bbs,QQ或Google.直到你弄明白為止.當你把問題最終解決的時候,我敢打賭,此時你一定很興奮,或者是比較興奮.這個時候知識已經在你的大腦里了.
下面我為你推薦幾本不錯的關於C語言籍:
C編程規范
C語言大全第四版 (個人感覺不錯,裡面有提及C標准方面的東西)
C和指針
The C programming Language (經典著作)
如果你要看電子書的話,以上幾本書在Google上很容易就可以找到.
關於C語言的初步理解:
對於初學者,會有太多的疑問,原因是你的知識面太小.現在我為你解釋一些C相關的東西.目的是讓你能夠有一個大致清晰的方向,來給自己安排學習計劃.專業的來說,我們是或將是一名程序員,程序員當然就是要開發程序了.對於軟體開發方面我來解釋下術語:
C,C++,ASM,Basic,Java 這些是計算機語言.計算機語言很多,我就不多說了.
Visual C++,Visual Basic, Microsoft研發的開發環境,開發環境包括:編譯器,庫函數(每種C語言編譯器都支持標准庫,同時它們也會擴展自己的庫,所以很多比較以來庫函數實現的程序員,在轉向不同的開發環境的時候最初總是不使用的,會遇到很多問題),一些資源模板等等.Visual 就是可視的意思,後面的就是語言.Visual C++支持C與C++2種語言,是根據文件的擴展名來判斷採用哪種編譯內核.
什麼是"面向對象"與"面向過程"? 其實是2種完全不同的程序設計思想,C語言是面向過程語言,而C++是面向對象語言.在面向對象的語言中有"類(Class)"這個東西.C中沒有.對象是由類來派生的一個實例,相反類就象是一個模板.
什麼是SDK? SDK就是軟體開發工具包(Software Development Kit).指的范圍比較廣,通俗的說,凡是能夠與軟體開發過程占上邊的東西都屬於.比如:庫文件,參考資料,介面函數,當然語言也應該屬於.
DDK就是設備驅動程序開發工具包.
Turbo C: 這是一個比較精緻的C語言編譯器.
理論上來說任何一門語言都可以在任何一種操作系統上運行,前提是操作系統要支持.也就是我們所說的應用程序介面,比如Window API(Application Programming Interface),其實是Microsoft內部定義的介面函數用於實現一些Windows內部的功能.一些對象的描述術語,在不同平台上是不同的,比如:Windows下的"調用",經常被稱為"呼叫","返回"被稱為"傳回".
什麼是"演算法"? 你最初只需要知道演算法實際上就是對特定的Data進行運算的一段代碼而已.也可以認為在求解一道題目的時候,採取的方法與步驟的總稱.對於基本的C程序來說,實際上就是由Data與演算法來組成的.
什麼是"數據結構"? 如果要是系統的講解,還需要一本書"數據結構",簡單的說:是程序要處理的數據在內存中的存儲與組織的方式,分為:物理結構與邏輯結構.邏輯結構就是我們抽象化以後得到的大腦影象.
什麼是"函數庫"? 它們以文件的形式存儲,是預先定義好的函數的集合,我們的程序可以直接調用.當然前提是要包含它的頭文件(庫函數的原型聲明).這些函數是在靜態連接期間組成到.exe文件中去的.Windows又存在另一種庫,叫做動態連接庫(DLL).
GUI: 也就是"圖形用戶界面",就是我們在Windows上看到的,存在:菜單欄,滾動條與顯示區域的窗口.
GDI: 圖形設備介面,從程序寫作者的角度來看,其實GDI就是由上百個函數與數據形態和一些相關的數據結構所組成的.
學習C語言的全過程:
仔細想想,實際上學習C語言,最初是應該先學習C語言的基礎語法.也就是學習C語言的組成部分.一部分一部分的向下學.知識要一點一點的鞏固的.本人假設你學習C語言是看"C程序設計".我認為你應該先把C程序設計仔細的看一便,這樣你應該可以對整本書和C語言的整體組成結構有個大致的清晰了解.不要認為學習只是在看書,看一便就可以了.你應該學會記筆記,在記筆記的過程中,其實你就是在學習,從知識的分析,理解,歸納,到最後以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋裡.個人感覺學習效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處.其實要學會給自己安排適合自己的學習計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學習的話,30天之內你應該可以掌握C語言了.其實在整個學習過程中你大多數時間都在看書,而不是面對電腦.在調試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數或多個),由幾個函數來實現,介面的封裝.採用哪種數據結構更適合一些.關鍵在於演算法.在你的最終程序發布之前,最好把你的代碼行數減到最少.不要只想著把代碼寫多.過多的代碼對程序來說是負擔.你可以在Internet上下載一個文件(C語言經典例題.chm),裡面大致包含了上百個經典的例題.每一個例題都是C語言某部分的典型應用.花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解.以後你會發現你在寫一些應用程序的時候經常會有一些演算法.會涉及到我之前提到的例題.最後我認為你可以自己來寫C語言標准函數,比如strcpy(); strlen();strcat();最好不要過分依賴庫函數.
C語言學習的難點:
現在應該是已經講到一個重點的環節.很多網友都說學習C語言很難,我認為C中有些部分是比較復雜,難理解的.當然在你具有了豐富的開發經驗以後,這以不在是問題了.下面我個人會對我認為學習C的時候比較難學的地方進行我自己的闡述,如果哪裡不正確,還請各位指出:
指針的出現:
我想有很多初學者學習到指針那一章都感覺很難,下面我就以自己的想法來解釋下指針這個特殊的數據類型,
基本變數大家可能並不難理解,因為基本變數其內部存儲了同類型的常量,事實上指針也是變數,不過呢,這個變數和基本變數有點不一樣,那你又問了:是哪裡不一樣呢? 我告訴你,簡單的來理解其實普通的變數內部存儲了同類型的常量,而指針變數內部存儲的則是"同類型變數的首地址".這樣你能夠理解嗎,是很簡單的解釋,但不失本質.事實就是這樣的.如果你不理解"同類型變數的首地址"的話,我可以給你形象的來描述一下:
float Variable; //聲明一個單精度實型的變數
此時,編譯器已經給Variable分配了內存空間,結構如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------
以上便是Variable的內存結構了,16位下的float佔用4個位元組,內存地址是線性編碼的,我們可以很容易的看出Variable的首地址就是他第一個單元的地址1001,好的,繼續向下看:
float *Pointer=&Variable; //聲明一個指向Variable的指針Pointer
_________
|1001 | 這是Pointer的內存結構
|_______|
我們的程序可以這樣來執行:
Variable=1.0;
直接給Variable賦值,我們稱為直接訪問.
也可以這樣執行:
*Pointer=1.0;
也可以通過指針變數來賦值,前面的*是間接運算符號,意思是求Pointer內部存儲地址所標識的內存單元.也就是Variable.此時,是賦值是通過間接訪問來實現的.可以這樣形象的描述:
________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------
以上應該是指針實現的基本解釋,很多優秀的程序寫作者都說指針是C語言中的精華,的確如此,很多優秀的程序寫作者寫程序都非常依賴指針,因為它很方便,實際上指針所訪問的對象是沒有限制的,他可以指向任何類型的變數,前提是只要我們知道內存地址.因此指針也並不安全,在開發網路程序的時候,盡量要少使用指針.下面我們在來看一下指針在數組中的使用.
數組中的指針:
簡單的來解釋下數組,數組結構在C中使用比較普遍,其實最常用的就是char 類型的數組,主要是用於字元串操作.實際上數組是"同類型變數的有限集合".我想這應該不難理解吧.數組在內存中佔用連續的內存單元(地址連續),來存儲數組中的每一個元素.數組是預先分配好指定長度的內存單元,供數組元素使用.它並不支持動態內存分配.在內存中想要唯一的確定數組,需要2個標識:入口地址(函數名)和結束標記('\0').有些語言並不向C語言這樣支持字元串結束標記,它們必須要另外聲明一個變數來標識尾元素的下標.那數組名其實就是這一組內存單元的首單元,他的地址就是整個數組的入口地址.此時應該明白了,數組名是一個指針,這樣理解沒有問題.不錯在具體操作的時候不允改變數組名的地址,也不符合實際要求.這樣就可以明白數組名是一個什麼 const Pointer(指針常量).我們可以這樣做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;
以上代碼應該是沒問題吧,同類型的指針,完全可以勝任數組名的任務.一點問題沒有而且可以運行的很好.當然,我們可以進一步把代碼這樣來寫:
把
for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我記不清了,指針的++運算是地址+1還是向後移動一個元素的位置,如果是地址+1的話,以上代碼在改成這樣:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;
如果數組類型是char的話,那就更方便了,因為字元串存存在一個在尾元素之後的結束標記('\0'),下面給出一個簡單的代碼,應用char Pointer:
char * my_strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ ); // 注意運算符的優先順序與結合性
return( dst ); //返回新傳的指針
}
以上代碼實現字元傳Copy功能,代碼是不是很簡潔啊.如果不需要移動內存塊的話,我們完全可以通過交換指針(內存地址)來實現排序操作,其效率應該是很客觀的.補充一句:千萬要弄清楚,指針本身與指針所指向的變數不是一個單元.
⑤ 網路安全要把C語言學到什麼程度
如果只是安全維護檢測,你學學寫腳本就行了,像Perl, Bash。
如果你是想自己寫工具,那可以學習c語言,不過光學會c語言還不夠,最主要的是熟悉的你系統平台,是用windows還是linux...,知道怎麼調用對應得平台介面。
至於要多久,那要看你的悟性了,主要是多寫代碼調試,這樣才提高的快
⑥ 深入學習C語言的具體步驟
①、對於你能寫這么長的問題描述,說明你很認真。
②、你的目的性較強,但是你也想有更加明確的目標,我可以給你講一下怎麼自己去尋找目標和路線以及怎樣學習。
③、計算機專業領域一共有幾個大方向,十幾個分支方向,而每個分支方向又有幾十個小方向,每一個方向的深入學習與熟練到一定火候都不是一朝一夕,互相之間也不是完全沒聯系的,但是你現在就應該選擇一個大方向並在其中的一個小方向內深入(為什麼要這么早就選擇具體的分支方向?後面說)。
④、這里列出計算機的幾個大方向(非編程開發類的我就不說了):
基本方向:
1、單片機、嵌入式方向
2、網路編程:涉及到伺服器程序、客戶端開發、腳本設計等。
3、系統編程:基礎API開發、桌面開發、系統程序開發、服務程序
4、圖形學:3D、2D、圖像識別、人臉識別
5、音頻:語音識別、音頻解碼、音頻軟體
6、編譯原理:編譯器設計、腳本解釋器、虛擬機、非自然語言翻譯系統
7、應用層開發:利用高層語言去開發表層應用
8、安全:反工程、病毒、反病毒、木馬、反木馬、軟體破解、軟體加殼
附加方向:
8、人工智慧:遺傳演算法、神經網路、灰色系統等等
9、游戲設計:各種游戲引擎設計以及業務邏輯設計等
⑤、基本方向是你一定要選的,附加方向只是基於基本方向的一些錦上添花,但是不管你怎麼選,最開始某些東西一定要深入而不是只是懂就夠(當然你對自己要求似乎不會很低),我把這個列出來:
數據結構:下面其他理論的基礎。
操作系統原理:理解操作系統的架構和細節,你才能對以後關於多線程、文件管理、內存管理、指令優先順序等有一個正確理解和運用。
編譯原理:能夠升華你對計算機編程語言的理解,對以後出現的各種編譯、解釋、兼容、移植、優化、並發與並行演算法等有一個深入理解。
資料庫系統原理:這個是進入公司都要會的,也是大型軟體開發的基礎。
軟體工程:這個是你能夠在經驗不足還能保證大項目正常完成的理論基礎。
網路技術:這個是必須學的,因為目前幾乎沒有一款裝幾率很高的軟體或者平台跟網路無關。
數學的話,主要是:離散數學、線性代數、高等數學、計算機圖形學、概率論
以上幾個基礎就是你成為一個融匯各個主要分支牛人必須學的(當然不是指理論,而是理論+實踐編碼能力)
⑥以上都是大的基礎,要一一攻破並深入學習,雖然網路時代計算機專業知識爆炸式的增長,但是以上幾個基礎掌握後,會發現,以後的什麼新的理論和技術都是基於這些大基礎,你就很容易理解了。
⑦我為什麼開頭不講你要具體學什麼怎麼順序學呢?因為那些技術你要掌握的話,根本可以自己解決,但是如果你由於興趣,沉迷於一些自己可見的小范圍技術的話,那麼畢業後雖然也能找到不錯的工作,薪水也可能高,但是不能成為一個大牛。
現在才開始講學習順序,雖然你說不要推薦書,不過我還是要用書來做順序。
C語言是可以寫很多核心和高級的東西,而不只是小東西,但是從你代碼來看,居然用到了 goto,我不是說你那些程序用到GOTO有什麼不好,而是一定要避免用GOTO,goto是錯誤之源,如果你有什麼內容非要用到goto才能寫到,說明你的編碼技巧還有不少提高空間。
你的學習順序應該是:
C:做一個超級馬里奧出來,並能夠讀取文本腳本來更新關卡。
C++:寫一個2D圖形引擎,封裝掉細節,實現面向對象設計和可復用設計,並且用到《設計模式》中提到的一些設計模式,這樣才能算對C++有一個很好的掌握。
MFC:MFC技術雖然近期已經冷下來了,但是你能熟練掌握它,才能證明你的C++OO技術夠純熟,嚴格證明你掌握了MFC很簡單,你只要用MFC做出一個殺毒引擎就差不多了。推薦的書有《深入淺出MFC》。
《Windows程序設計》:和MFC不同的是,用的是windows核心SDK,也就是API,這本書學完後,你才能從操作系統層面上算掌握了win32 平台下的機理(其實win64和win32大部分機理類似)。
C#:C#里集合了當代和前沿計算機科學里最先進的一些語法(雖然執行效率一直被人質疑),但是你學完C#並深入後,至少能夠算是對計算機語言有一個更加深刻的理解了。如何證明你C#學的不錯了?也很簡單,再次寫一個隨便什麼游戲,比如俄羅斯方塊。如果更加證明自己呢?用它寫一個P2P網路對戰游戲。
(如果你注意的話,會發現我說的學習順序都是沿著語言和某些技術的,為什麼呢?因為這些語言和技術涉及到特定的領域技術和計算機理論思想,比如【真正】學完了C#的話,就不單指學完了C#,而是把多種語言範式都學習了一遍,以及現代的程序開發思維(因為裡面用到了很多讓你一勞永逸的技術))
以上5個步驟都是基礎大步驟,要解決的話要沒1-2年應該不夠。
與此同時,要盡快選出文中你感興趣的方向作為3-5年的長期方向,不要擔心過早選擇分支方向會有什麼損失,因為計算機很多分支是相通的,只有你把分支方向深入進去,才能真正理解很多理論的實踐意義。並且一旦你在某個分支領域形成了較強的優勢(比如,到公司里只有你這方面最強),那麼你就是稀缺人才。
關於大方向的步驟就不說了,你主要就是要把我說的這幾個基礎步驟先解決,同時平時要注重大方向理論結合實際去編碼和開發。
⑦ 本人有網路技術和c語言基礎。想往網路安全方面發展。請問下一步該怎麼做求專業高手指導
1、必須精通TCP/IP協議族。
2、學習和了解各種OS 平台,如:linux,UNIX,BSD 等。
3、隨時關注網路安全最新安全動態。
4、熟悉有關網路安全的硬軟體配置方法。尤其交換機和路由的配置。
5、多泡網路安全論壇。
6、終身學習。
希望能幫到你。
⑧ 網路安全怎麼入門
入門
然而當你掌握了Web基礎知識時,你才會殘酷的發現你還遠遠沒有入門。 這里給出一些我的建議:
1. 多看書
閱讀永遠是最有效的方法,盡管書籍並不一定是最好的入門方式,但書籍的理解需要一定的基礎;但是就目前來看,書籍是比較靠譜的入門資料。
例如
《黑客攻防---web安全實戰詳解》《Web前端黑客技術揭秘》《安全之路:Web滲透技術及實戰案例解析(第2版)》
現在Web安全書籍比較多,因此大家在學習的過程中可以少走了不少的彎路。如果以上推薦書籍閱讀有困難,那就找自己能看得進的 Web 安全的書。
當然紙上談兵終覺淺,不實踐一下怎麼好呢。
2.常用工具的學習
1.Burpsuite學習 Proxy 抓包改包學習 Intruder 爆破模塊學習實用 Bapp 應用商店中的插件2.Nmap使用 Nmap 探測目標主機所開放的埠使用 Nmap 探測目標主機的網路服務,判斷其服務名稱及版本號3.SQLMap對 AWVS 中掃描出的 SQL 注入漏洞使用 SQLMap 進行數據獲取實踐常見漏洞類型的挖掘與利用方
3.學習開發
1.書籍《細說 PHP》2.實踐使用 PHP 寫一個列目錄的腳本,可以通過參數列出任意目錄的列表使用 PHP 抓取一個網頁的內容並輸出使用 PHP 抓取一個網頁的內容並寫入到Mysql資料庫再輸出
⑨ 學習網路安全應有哪些基本功
對於要學習網路安全的人來說,應該具備以下幾個方面的基礎知識:
第一:操作系統知識。學習安全應該從了解操作系統體系結構開始,包括任務調度、資源管理、許可權管理、網路管理等內容。學習操作系統建議從Linux操作系統開始,由於Linux操作系統是開源的,所以可以了解到更多的技術細節。
第二:計算機網路知識。網路安全必然離不開網路知識,計算機網路知識包括網路協議、數據交換、網路通信層次、網路設備等內容。網路知識涉及到的內容比較多,而且也具有一定的難度,需要具備一定的數學基礎。另外,網路知識的更新速度也比較快,需要不斷更新知識結構。
第三:編程知識。從事網路安全一定要掌握編程知識,編程語言可以從C語言開始學起,另外Java、Perl、C++、Python等語言在安全領域也有廣泛的應用。
另外,從事網路安全還應該了解資料庫知識,資料庫的安全往往是網路安全的核心之一。