2017-08-15 60 views
1

我有一個使用example.php並將其移動到公用文件夾中laravel
使用example.php我被黑客攻擊:可以的,如果我公開公用文件夾中的文件在PHP 5 laravel

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 

echo "your name: ".$name; 
echo "your email: ".$email; 
?> 

而且結果:

your name: John 
your email: [email protected] 

所以。這是安全還是危險?謝謝。

+1

在你發佈的代碼片段中沒有任何固有危險或風險。任何知道路徑或URL的人都可以訪問/ public中的任何內容,但是如果您的PHP文件正確地得到了正確的服務,那麼您不必擔心。但是如果你把你的PHP文件放在Laravel項目的/ public中,那麼你並沒有使用Laravel的優點。你想做什麼? –

+0

用戶填寫輸入。我直接爲用戶測試製作教程基本的php。 –

回答

1

您設置代碼的方式並不是應該如何使用Laravel。

爲了使Laravel得到最好的使用,你需要將你的表單html放到它自己的文件下的views文件夾中,例如:form.blade.php。

然後你需要做一個新的控制器php artisan make:controller FormController

我也建議作出申請的文件夾:php artisan make:request FormRequest

你品牌每個HTML代碼的name=領域例如請求中:

public function rules() 
    { 
     return [ 
      'name' => 'required', 
      'email' => 'required', 
     ]; 
    } 

你的路由中的文件,那麼你就需要添加:

Route::post('/link', '[email protected]'); 

在你的控制你然後做:

<?php 
use \App\Http\Requests\FormRequest; 

public function submitForm(FormRequest $formRequest) 
    { 
     // your logic would then go in here. Firstly fetch the request 

     $fetchData = $formRequest->get(); 
    } 

這僅僅是基本的休息,你應該做的事情了。你顯然需要填寫邏輯。

PS在HTML中,我們增加了請求,以檢查他們是否已經充滿你會加入類似:

@if ($errors->has('name')) 
    <span class="help-block"> 
     <strong>{{ $errors->first('name') }}</strong> 
    </span> 
@endif 

我希望這可以讓你到Laravel的正軌。

我也建議看看Laracasts,因爲他們有一些很棒的教程。

+0

是的。這種方式是最好的。謝啦。 :) –

+0

完全沒問題:) – Option

1

編寫純php文件肯定比使用Laravel的框架MVC系統更不安全。網絡蜘蛛可以跟蹤網址,並可能找到您的表單和動作網址,即使在框架目錄內。有很多方法可能會出現問題,但最簡單的方法可能是測試將<script>alert();</script>作爲輸入時發生的情況。

希望它有幫助

PS。

這在很大程度上取決於編碼和消毒,如果你不與任何淨化你的輸入,因爲我可以在PHP文件看,你可以使用<script>作爲輸入,如果消毒不好,也許<scri<script>pt>可以工作...或&#60;script&#62;等等...作爲安全措施,您總是需要知道輸入可能是惡意的,消毒是框架爲您做的一件事

1

您必須記住的一件事是Laravel是MVC(模型 - 視圖 - 控制器)框架。我在這段代碼中看到的是「Vanilla」PHP和Laravel並不是真的打算這樣使用。

這裏的要點是,所有的後端處理應該在公共文件夾之外完成,即在模型和控制器組件中完成。因爲公用文件夾具有chmod 777,所以放在公用文件夾中的所有內容都是有風險的。這意味着如果在該文件夾的源文件中使用風險函數,黑客可能會利用它們。

相關問題