2014-09-06 68 views
-2

通常在PHP發佈形式,當我使用哪個更安全? PHP_SELF或「」

<form action="" method="POST"> 
//somtehing something 
</form> 

但在最後幾個小時,同時上網計算器我遇到了兩個不同的線程這兩個聲稱一個方法比其他更安全。現在我很困惑哪一個是穩妥的方法

First post被聲稱形式

action="" 

是重於形式更爲安全

action="<?$_SERVER['PHP_SELF']" 

現在我很困惑哪一個,我應該去。我請一些高級成員在這裏提出這個問題。並且請解釋一下,如果我使用一種方法而不是另一種方法,那麼爲什麼它更安全

+0

'action =「<?$ _ SERVER ['PHP_SELF']」'實際上不會做任何事情,除非你真的迴應它。''或'<?php echo ...?>' – 2014-09-06 17:53:22

+0

爲了公平,沒有一個答案解釋了PHP_SELF如何被利用。我添加了一個答案,試圖這樣做:http://stackoverflow.com/a/25703224/387347 – 2014-09-06 18:04:23

回答

2

如MrTux所述,首選方法是將action屬性留空。

使用$_SERVER['PHP_SELF']$_SERVER['REQUEST_URI']填充它的選項將使跨腳本的腳本處於打開狀態。

閱讀MrTux的評論以獲取更多詳細信息。

所以,只需將動作屬性從表單標記中完全排除出去,表單標記會自動默認爲當前頁面,並且您會沒事的。

+0

嗯,實際上有。如果您只是在PHP中使用'''action =「<?= $ _ SERVER ['PHP_SELF']」''',那麼只需添加'''?「><''''到URL,看看會發生什麼... – MrTux 2014-09-06 17:28:25

+0

@MrTux你說什麼對REQUEST_URI是真實的,但PHP_SELF不包括變量。 – Boann 2014-09-06 17:31:28

+1

Your're right;),但它不能解決問題。在末尾添加''''/「><'''作爲PATH_INFO而不是QUERY_STRING。同樣的問題 – MrTux 2014-09-06 17:33:20

相關問題