婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > eval(cmd)與eval($cmd)的區別與聯系

eval(cmd)與eval($cmd)的區別與聯系

熱門標簽:天津電銷外呼系統違法嗎 滄州電銷外呼系統價格 合肥ai電銷機器人費用 銀行信貸電話機器人 手機外呼系統什么原理 上海400客服電話怎么申請 凱立德地鐵站地圖標注 溫州外呼系統招商 400電話個人能不能辦理

這個問題一直困擾我許久,今天終于解決清楚了

問題1:eval的執行是否需要雙引號包括:

先看三個命令:

A:?php eval(system(dir))?>
B:?php
	$cmd="system(dir)"; 
	eval($cmd)?>

A結果:

B結果:

報錯

思考:

同樣是一個命令,為什么會出現如此區別,詢問了其他師傅得知:eval執行的是變量的值的時候,該變量值需要閉合,也就是必須是一個完整的語句,需要用分號結尾。根據這個道原理我們改一下上面的命令看看:

?php
	$cmd="system(dir);"; 
	eval($cmd)?>

結果:


發現是可以執行的。

后話:

關于這個點,還需要補充一個:

內置函數在eval里面直接執行時不需要加分號,看兩個命令就知道了:

eval(system(dir));
eval(system(dir););

內置函數不需要加分號,其實我覺得加不加分號都一樣,因為加了分號就要加引號,引號也帶有解析的意思

理解一下命令執行中的閉合:

看代碼:

eval(system(dir));
eval(system(dir););

看看結果:

這里可以并且后面語句是不影響解析的

?php
	eval("system(dir);?>xyusaiqeqcyuqqwdnoqcq");
	?>

我們這里都是不影響的,為什么?

如果我們是簡單的閉合eval這個命令

那我們的playload應該是:

?php 
	eval("system(dir));?>xyusaiqeqcyuqqwdnoqcq");
?>
上面的代碼我錯誤的理解成:
?php 
	eval("system(dir)");?>
	xyusaiqeqcyuqqwdnoqcq");
?>

之前我錯誤的以為是這樣的閉合的,但是后來發現我錯了,直到在有一道題目中我發現這樣閉合不了,后面詢問了一下其他師傅,得到答案:

eval()這個函數可以理解成我們是將eval(字符串)這里面的字符串放到了一個新的php里面去運行,這個新的php本來就又 ?php 所以當我們傳入 system(dir);?>dasdas的時候,?>就以及階段了php代碼

學習了~

您可能感興趣的文章:
  • php eval函數用法 PHP中eval()函數小技巧
  • php中eval函數的危害與正確禁用方法
  • python3中的eval和exec的區別與聯系
  • eval與window.eval的差別分析
  • 淺析DataBinder.Eval和Eval的區別

標簽:七臺河 溫州 金華 酒泉 怒江 白城 洛陽 赤峰

巨人網絡通訊聲明:本文標題《eval(cmd)與eval($cmd)的區別與聯系》,本文關鍵詞  eval,cmd,與,的,區別,聯系,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《eval(cmd)與eval($cmd)的區別與聯系》相關的同類信息!
  • 本頁收集關于eval(cmd)與eval($cmd)的區別與聯系的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 曲松县| 巨野县| 三河市| 萨嘎县| 宁都县| 临猗县| 金秀| 道孚县| 汉中市| 永康市| 水城县| 方城县| 成武县| 丽水市| 凉山| 凌云县| 沙河市| 丰城市| SHOW| 衡山县| 嘉善县| 堆龙德庆县| 三明市| 华亭县| 合阳县| 抚州市| 新晃| 来宾市| 云阳县| 石门县| 大同县| 桂东县| 凉山| 黄石市| 蒙自县| 睢宁县| 康乐县| 澜沧| 界首市| 泾川县| 探索|