2010-05-24 18 views
2

比方說,我有一個PHP文件,test.php有兩個函數:test1()和test2()。有人可以在我的庫中執行php函數,但是在查看的頁面上沒有調用嗎?

如果我有一個外部php文件,index.php,其include(test.php)代碼。如果在index.php文件中引用了test1()而不是test2(),有沒有什麼辦法可以讓某人在使用index.php文件時做一些惡意的事情來執行test2()?

+2

沒有(名譽是不應該這樣一個簡短的答案,所以我評論,而不是回答。) – 2010-05-24 23:09:42

回答

3

他們可以執行任意代碼的唯一方法是通過code injection漏洞。

下面是一個過於簡單的例子:

<?php 

$runthis = $_GET["runthis"]; 

$runthis(); 

那麼攻擊者就可以調用你的腳本http://example.com/index.php?runthis=test2,然後它會運行test2()功能。

在上面鏈接的維基百科文章或OWASP網站上閱讀有關代碼注入的更多信息。

1

當你說「使用」,你的意思是像他們的瀏覽器中的最終用戶?不,他們不能運行任意代碼。

相關問題