面试经常提问
一:如果chmod-x/bin/chmod執(zhí)行上述命令后,如何恢復(fù)
Per版:sudo perl-e’chmod 0775,”/bin/chmod”
Python3版:sudo python-c”import os;os.chmod(“/bin/chmod”,0755)”
二:一臺(tái)電腦配置無限好,可以同時(shí)打開多少個(gè)網(wǎng)頁?
?????? 65535-1024=64511(端口數(shù))
三:IP地址能被偽造嗎?
http頭部可以被篡改,但是只能修改X_FORWARDED_FOR,真實(shí)ip地址(REMOTE_ADDR)很難修改(除非是路由器去修改),因?yàn)檎鎸?shí)IP是底層會(huì)話IP地址,而且因?yàn)門CP3次握手的存在,連接無法建立,偽造的意義不大,至于UDP的話,一般是內(nèi)網(wǎng)才使用UDP通信。
四:有100萬個(gè)獎(jiǎng)品,每個(gè)人可以中獎(jiǎng)3次,先到先得,怎么控制并發(fā),不能發(fā)超,并保證完全的先到先得模式?
??????? 如果獎(jiǎng)品相同,則在redis中初始化一個(gè)值5為100萬的KV值,每當(dāng)一個(gè)用戶抽獎(jiǎng)時(shí),現(xiàn)在Redis判斷該用戶的抽獎(jiǎng)記錄,如果抽獎(jiǎng)記錄小于3則可去抽獎(jiǎng),并增加抽獎(jiǎng)記錄。否則重定向到靜態(tài)頁面,直到100W獎(jiǎng)品抽完為止。如果獎(jiǎng)品不通,需要根據(jù)獎(jiǎng)品種類初始化獎(jiǎng)品種類數(shù)量的KV值,重復(fù)上面過程。
五:Memcache和Redis的區(qū)別?
六:HTTP Keep-Alive是什么?
HTTP協(xié)議采用“請(qǐng)求-應(yīng)答”模式,當(dāng)使用普通模式,即5非KeepAlive模式時(shí),每個(gè)請(qǐng)求/應(yīng)答客戶和服務(wù)器都要新建一個(gè)連接,完成之后立即斷開連接(Http協(xié)議為無連接的協(xié)議),當(dāng)時(shí)用Keep-Alive模式(又稱持久連接、連接重用)時(shí),Keep-Alive功能使客戶端到服務(wù)器端的連接持續(xù)有效,當(dāng)出現(xiàn)對(duì)服務(wù)器的后繼請(qǐng)求時(shí),Keep-Alive功能避免了建立或者重新建立連接。
Http1.0中默認(rèn)是關(guān)閉的,需要在http頭加入“Connection:Keep-Alive”,才能啟用Keep-Alive;http1.1中默認(rèn)啟用Keep-Alive如果加入“Connection:close”,才關(guān)閉目前大部分瀏覽器都是用http1.1協(xié)議,也就是說默認(rèn)都會(huì)發(fā)起Keep-Alive的連接請(qǐng)求了,所以是否能完成一個(gè)完整的Keep- Alive連接就看服務(wù)器設(shè)置情況。
七:myisam跟innodb有什么區(qū)別?
- InnoDB支持事務(wù),MyISAM不支持,對(duì)于InnoDB每一條SQL語言都默認(rèn)封裝成事務(wù),自動(dòng)提交,這樣會(huì)影響速度,所以最好把多條SQL語言放在begin和commit之間,組成一個(gè)事務(wù);
- InnoDB支持外鍵,而MyISAM不支持。對(duì)一個(gè)包含外鍵的InnoDB表轉(zhuǎn)為MYISAM會(huì)失敗;
- InnoDB是聚集索引,數(shù)據(jù)文件是和索引綁在一起的,必須要有主鍵,通過主鍵索引效率很高。但是輔助索引需要兩次查詢,先查詢到主鍵,然后再通過主鍵查詢到數(shù)據(jù)。因此,主鍵不應(yīng)該過大,因?yàn)橹麈I太大,其他索引也都會(huì)很大。而MyISAM是非聚集索引,數(shù)據(jù)文件是分離的,索引保存的是數(shù)據(jù)文件的指針。主鍵索引和輔助索引是獨(dú)立的。
- InnoDB不保存表的具體行數(shù),執(zhí)行select count(*) from table時(shí)需要全表掃描。而MyISAM用一個(gè)變量保存了整個(gè)表的行數(shù),執(zhí)行上述語句時(shí)只需要讀出該變量即可,速度很快;
- Innodb不支持全文索引,而MyISAM支持全文索引,查詢效率上MyISAM要高;
八:什么是 CSRF 攻擊 ?XSS 攻擊?如何防范?
XSS定義的主語是“腳本”,是一種跨站執(zhí)行的腳本,也就是javascript腳本,指的是在網(wǎng)站上注入我們的javascript腳本,執(zhí)行非法操作。
CSRF定義的主語是”請(qǐng)求“,是一種跨站的偽造的請(qǐng)求,指的是跨站偽造用戶的請(qǐng)求,模擬用戶的操作。
防御XSS攻擊可以通過以下兩方面操作:
對(duì)用戶表單輸入的數(shù)據(jù)進(jìn)行過濾,對(duì)javascript代碼進(jìn)行轉(zhuǎn)義,然后再存入數(shù)據(jù)庫;
在信息的展示頁面,也要進(jìn)行轉(zhuǎn)義,防止javascript在頁面上執(zhí)行。
CSRF攻擊的防御可以通過以下兩方面操作:
所有需要用戶登錄之后才能執(zhí)行的操作屬于重要操作,這些操作傳遞參數(shù)應(yīng)該使用post方式,更加安全;
為防止跨站請(qǐng)求偽造,我們?cè)谀炒握?qǐng)求的時(shí)候都要帶上一個(gè)csrf_token參數(shù),用于標(biāo)識(shí)請(qǐng)求來源是否合法,csrf_token參數(shù)由系統(tǒng)生成,存儲(chǔ)在SESSION中。
轉(zhuǎn)載于:https://www.cnblogs.com/hjp0516-qq/p/11178390.html
總結(jié)
- 上一篇: 02 docker的基本用法
- 下一篇: 栈的概念