比方說,我有一個PHP文件,test.php有兩個函數:test1()和test2()。有人可以在我的庫中執行php函數,但是在查看的頁面上沒有調用嗎?
如果我有一個外部php文件,index.php,其include(test.php)代碼。如果在index.php文件中引用了test1()而不是test2(),有沒有什麼辦法可以讓某人在使用index.php文件時做一些惡意的事情來執行test2()?
比方說,我有一個PHP文件,test.php有兩個函數:test1()和test2()。有人可以在我的庫中執行php函數,但是在查看的頁面上沒有調用嗎?
如果我有一個外部php文件,index.php,其include(test.php)代碼。如果在index.php文件中引用了test1()而不是test2(),有沒有什麼辦法可以讓某人在使用index.php文件時做一些惡意的事情來執行test2()?
他們可以執行任意代碼的唯一方法是通過code injection漏洞。
下面是一個過於簡單的例子:
<?php
$runthis = $_GET["runthis"];
$runthis();
那麼攻擊者就可以調用你的腳本http://example.com/index.php?runthis=test2
,然後它會運行test2()
功能。
在上面鏈接的維基百科文章或OWASP網站上閱讀有關代碼注入的更多信息。
當你說「使用」,你的意思是像他們的瀏覽器中的最終用戶?不,他們不能運行任意代碼。
沒有(名譽是不應該這樣一個簡短的答案,所以我評論,而不是回答。) – 2010-05-24 23:09:42