課程
/后端開發(fā)
/PHP
/web安全之SQL注入
有沒有小伙伴幫忙看一下?
2018-01-23
源自:web安全之SQL注入 5-3
正在回答
是的 ,這段代碼是有問題的 不僅替換語句的那個的地方有問題,switch的參數(shù)有問題,而且$args此時被array_shift移空了應(yīng)該是空數(shù)組、那下面過濾的$args[$i]從何而來呢
可能老師只是想演示一下底層是怎么來綁定參數(shù)的原理吧,按這個原來改改代碼其實是可以的
可視區(qū)的寬和高,會隨著窗口的大小變化很正常的,光看這不夠,多看幾遍書,敲敲代碼,慢慢就懂了;
$mysqli?=?new?Mysqli('127.0.0.1',?'root',?'root',?'tst'); $name?=?$_GET['name']????''; $password?=?$_GET['password']????''; function?bind_param($sql,?$format) { ????$args?=?func_get_args(); ????$prepare_sql?=?array_shift($args); ????$format?=?array_shift($args); ????if?(strlen($format)?>?count($args))?{ ????????die('缺少參數(shù)'); ????} ????$i?=?0; ????while?($i?<?strlen($format))?{ ????????switch?($format[$i])?{ ????????????case?'s': ????????????????$args[$i]?=?"'"?.?addslashes($args[$i])?.?"'"; ????????????????break; ????????????case?'i': ????????????????$args[$i]?=?intval($args[$i]); ????????????????break; ????????????default: ????????????????break; ????????} ????????//這段代碼也有問題,str_replace?會替換所有的問號 ????????$prepare_sql?=?preg_replace('/\?/',??$args[$i],?$prepare_sql,?1); ????????$i++; ????} ????return?$prepare_sql; } echo?'<pre>'; $sql?=?"select?name?from?user?where??name=??and?password=?"; echo?$sql; echo?'<br>'; $after_prepare?=?bind_param($sql,?'ss',?$name,?$password); echo?'after?prepare:'?.?$after_prepare; echo?'<br>'; $res?=?$mysqli->query($after_prepare); $result?=?$res->fetch_all(); if?($result)?{ ????print('hi?'); ????print_r($result); }?else?{ ????print('hack?failed'); } echo?'</pre>';
注意?
需要 php7以上,或者自己改代碼
舉報
SQL注入是整個WEB安全領(lǐng)域中比較重要的一部分
4 回答老師在bind_param函數(shù)中用到的str_replace函數(shù)可以指定替換第幾個匹配到的字符嘛?我用了str_replace卻一次性把?都替換了
1 回答在瀏覽器中查詢sql語句是怎樣做到的?
2 回答難道我遺漏了什么嗎?
1 回答瀏覽器不同?實驗的結(jié)果不同?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-01-26
是的 ,這段代碼是有問題的 不僅替換語句的那個的地方有問題,switch的參數(shù)有問題,而且$args此時被array_shift移空了應(yīng)該是空數(shù)組、那下面過濾的$args[$i]從何而來呢
可能老師只是想演示一下底層是怎么來綁定參數(shù)的原理吧,按這個原來改改代碼其實是可以的
2022-03-24
可視區(qū)的寬和高,會隨著窗口的大小變化很正常的,光看這不夠,多看幾遍書,敲敲代碼,慢慢就懂了;
2018-09-29
注意?
需要 php7以上,或者自己改代碼