国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

PHP的一些知識(shí)點(diǎn)研究(一)

2020-03-24 18:57:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 一、基于PHP實(shí)現(xiàn)的webshell攻擊

    在烏云上看到一個(gè)基于php的webshell攻擊。

    高度隱蔽的webshell,使用普通的php代碼將真正的shell內(nèi)容經(jīng)過(guò)層層加密處理之后保存到圖片當(dāng)中,只留下一個(gè)url,并且url還是經(jīng)過(guò)加密處理的,所以對(duì)外看沒(méi)有任何特征可尋,使其很難被發(fā)現(xiàn),當(dāng)打開(kāi)上述url時(shí),,顯示的是404,而這個(gè)404頁(yè)面就是偽裝為404的木馬,只是把標(biāo)題改為了404 Not Found。

    二、不用或少用else語(yǔ)句

    對(duì)于if else 有人追求結(jié)構(gòu)的完整,有if必有else,這看起來(lái)或許是不錯(cuò),不過(guò)有時(shí)會(huì)帶來(lái)代碼的繁瑣,而且可能會(huì)導(dǎo)致邏輯的混亂;可以以一種結(jié)果為基準(zhǔn),當(dāng)發(fā)生其他情況時(shí)做if判斷;即默認(rèn)A,有異常則為B:

    三、單頁(yè)面結(jié)構(gòu)(Single-page application)

    單頁(yè)面就是一切操作和布局都是在一個(gè)頁(yè)面下進(jìn)行,不需要頁(yè)面跳轉(zhuǎn),根據(jù)不同的用戶請(qǐng)求加載不同的內(nèi)容。

    優(yōu)點(diǎn):頁(yè)面結(jié)構(gòu)簡(jiǎn)單,數(shù)據(jù)量小,節(jié)省帶寬,響應(yīng)快,體驗(yàn)好,易于開(kāi)發(fā)、維護(hù)以及優(yōu)化;

    缺點(diǎn):使用ajax技術(shù),導(dǎo)致不利于seo。

    四、讓搜索引擎抓取ajax的內(nèi)容

    主要針對(duì)上一案例的單頁(yè)面結(jié)構(gòu),程序通過(guò)#結(jié)構(gòu)url控制頁(yè)面內(nèi)容,但不會(huì)被搜索引擎抓取。

    方法一:twitter使用"井號(hào)+感嘆號(hào)"的結(jié)構(gòu),但體驗(yàn)不好而且繁瑣;

    方法二:使用History API;在不刷新頁(yè)面的情況下,改變瀏覽器地址欄顯示的地址。步驟如下:

    A、用History API替代井號(hào)結(jié)構(gòu),讓每個(gè)#號(hào)都變成正常路徑的URL,這樣搜索引擎就會(huì)抓取每一個(gè)網(wǎng)頁(yè)。

    B、定義一個(gè)JavaScript函數(shù),處理html' target='_blank'>Ajax部分,根據(jù)網(wǎng)址抓取內(nèi)容。

    C、定義鼠標(biāo)的click事件,使用History對(duì)象的popstate事件處理瀏覽器的"前進(jìn) / 后退"按鈕。

    D、設(shè)置服務(wù)器端。

    五、CURL_MULTI_INIT()

    以前一直使用curl_init(),最近看到有curl_multi_init();本以為會(huì)帶來(lái)更高效的代碼,看了下curl_multi的步驟,感覺(jué)相當(dāng)繁瑣,而且curl_multi可能會(huì)造成cpu過(guò)高、網(wǎng)頁(yè)假死等現(xiàn)象;同時(shí)對(duì)比了curl_init和curl_multi_init,多線程在速度上不一定優(yōu)于單線程,多線程只是能在同時(shí)處理多任務(wù),時(shí)間成本不一定低。附上curl_multi的使用步驟:

    第一步:調(diào)用curl_multi_init;

    第二步:循環(huán)調(diào)用curl_multi_add_handle;

    這一步需要注意的是,curl_multi_add_handle的第二個(gè)參數(shù)是由curl_init而來(lái)的子handle;

    第三步:持續(xù)調(diào)用curl_multi_exec;

    第四步:根據(jù)需要循環(huán)調(diào)用curl_multi_getcontent獲取結(jié)果;

    第五步:調(diào)用curl_multi_remove_handle,并為每個(gè)字handle調(diào)用curl_close;

    第六步:調(diào)用curl_multi_close。

    六、PHP strstr()函數(shù)

    strstr(string,search)搜索一個(gè)字符串在另一個(gè)字符串中的第一次出現(xiàn)。返回字符串的其余部分(從匹配點(diǎn))。如果未找到所搜索的字符串,則返回 false。


    search 必需。規(guī)定所搜索的字符串。如果該參數(shù)是數(shù)字,則搜索匹配數(shù)字 ASCII 值的字符。

    參考:http://www.w3cschool.cn/func_string_strstr.html。所以,在給第二個(gè)參數(shù)時(shí),如果需要匹配數(shù)字,建議加上引號(hào)。

    七、論規(guī)范化的重要性

    家附近的一條久治不下的道路,通過(guò)劃分出人行通道、非機(jī)動(dòng)車道、機(jī)動(dòng)車道,使得問(wèn)題一下子等到了解決。有時(shí)候靈活導(dǎo)致選擇過(guò)多,問(wèn)題也會(huì)很多;程序亦如此,用戶輸入的靈活看起來(lái)很不錯(cuò),其實(shí)在后臺(tái)處理時(shí)是需要更多的成本,何不在前期就進(jìn)行規(guī)范化,bug止于源頭,而不是亡羊補(bǔ)牢。規(guī)范化使一切流程變得簡(jiǎn)單高效。

    八、HHVM

    HHVM (HipHop Virtual Machine)會(huì)將PHP代碼轉(zhuǎn)換成高級(jí)別的字節(jié)碼(通常稱為中間語(yǔ)言)。然后在運(yùn)行時(shí)通過(guò)即時(shí)(JIT)編譯器將這些字節(jié)碼轉(zhuǎn)換為x64的機(jī)器碼。

    從各項(xiàng)數(shù)據(jù)表明,和Zend相比,HHVM變得更高效,CPU負(fù)載降低,平均頁(yè)面加載時(shí)間也縮短。HHVM的存在是為了優(yōu)化PHP運(yùn)行性能,和php5相比,確實(shí)存在一些優(yōu)勢(shì),還是坐等php7吧。

    九、PHP源碼簽名收集器

    當(dāng)學(xué)習(xí)新的、不熟悉的源碼時(shí),對(duì)代碼結(jié)構(gòu)獲取直觀的感受是很重要的。可以通過(guò)從每個(gè)源文件中逐行獲取標(biāo)點(diǎn)進(jìn)行總結(jié),即文件簽名。這可以幫助考量代碼的復(fù)雜度。其實(shí)也就是提取代碼文件中固定的符號(hào)呈現(xiàn)文件的結(jié)構(gòu)。

    參考:http://c2.com/doc/SignatureSurvey/

    十、協(xié)同過(guò)濾推薦算法

    1、基于內(nèi)容的推薦算法的前提假設(shè)是:如果用戶喜歡物品a,那么用戶也應(yīng)該會(huì)喜歡與a類似的物品。基本思想是拆分內(nèi)容屬性,提取相同屬性的內(nèi)容進(jìn)行推薦。

    2、協(xié)同過(guò)濾推薦算法的前提假設(shè)是:如果用戶a與用戶b均對(duì)一系列相同的物品表示喜歡,那么a極有可能也喜歡b用戶喜歡的其他物品。基本過(guò)程是用戶首先為每個(gè)item進(jìn)行評(píng)價(jià)打分,通過(guò)計(jì)算不同用戶評(píng)分之間的相似程度,可以找到最近鄰居,根據(jù)最近鄰居的評(píng)價(jià),產(chǎn)生推薦。

    上述算法都是運(yùn)用了矩陣建模,使用到余弦相似度、皮爾遜相似度等公式。使用中可將二者合二為一推薦。

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 吉水县| 安福县| 黎川县| 元氏县| 湘潭县| 常山县| 裕民县| 随州市| 衡阳市| 拜城县| 汝阳县| 斗六市| 北海市| 嘉荫县| 宁都县| 香河县| 白玉县| 蓬安县| 临漳县| 江西省| 和顺县| 河间市| 新平| 平南县| 武清区| 彭泽县| 育儿| 武鸣县| 奉节县| 汤原县| 建阳市| 蓝山县| 保康县| 栾川县| 精河县| 连山| 和平区| 浙江省| 炉霍县| 望都县| 中山市|