Tag: Laravel

Laravel RateLimiter – Bruteforce Schutz

Beim Stöbern im Laravel Breeze Starter Kit ist mir der RateLimiter aufgefallen. Ich war gerade dabei einen einfach passwortgeschützten Bereich zu implementieren und dachte schon darüber nach, dies von Hand zu implementieren. Nachdem die Funktionalität jedoch schon in Laravel implementiert ist, greife ich gerne darauf zurück. Wie sie sich einfach in einen Controller implementieren läßt, zeige ich in dem nachfolgenden Beispiel:

Continue reading

Laravel bei All-Inkl installieren

Für die Installation von Laravel gibt es eine Doku und sogar ein kostenloses Video. Darin wird empfohlen Laravel via Composer zu installieren. Letzteres steht standardmäßig auf einem All-Inkl Hosting zunächst nicht zur Verfügung. Aber All-Inkl stellt eine kleine Anleitung bereit, mittels der Composer installiert werden kann.

Der Aufruf von laravel new blog schlägt jedoch trotzdem mit folgender Meldung fehl sh: composer: command not found, obwohl Composer ordnungsgemäß installiert ist, was mittels dem Aufruf composerüberprüft werden kann.

Ursächlich dafür ist, laut Support von All-Inkl:

Die Verwendung des Befehls “laravel new” ist in der chroot Umgebung nicht möglich, da hier die nötige Verlinkung mit Composer nicht möglich ist. Sie müssen hier den Alternativen Befehl “composer create-project –prefer-dist laravel/laravel ZIEL_ORDER” nehmen.

Dieses Szenario wird auch auf der Installationsseite von Laravel beschrieben.

 

Laravel 6 From Scratch – Cheat Sheet

Das Cheat Sheet ist in permanenter Weiterentwicklung, abhängig davon wie ich schnell ich dazu komme mir die einzelnen Videos nochmals anszuschauen Laravel 6 From Scratch. Entsprechend den Videos werde ich versuchen auch immer jeweils auf die Version 6 zu referenzieren. Ursprünglich hatte ich mir schon alle Videos angeschaut aber eher nebenbei und daher jetzt nochmals richtig:

Die Ordnerstruktur

// Routen
/routes/web.php

// Views
/resources/views/

// Welcome
/resources/views/welcome.blade.php

// Compiled Versions
/storage/framework/views/

 

Routen / Routing: Laravel Docs 6.x Routing

// Standard Route
Route::get('/', function(){
  return view('welcome');
});

// Test Route
Route::get('test', function(){
  return view('test');
});

// Minimalistisch
Route::get('/', function(){
  return "Hello World";
});

// JSON
Route::get('/', function(){
  return ['foo' => 'bar'];
});

// Mit Parameterübergabe (Long Version)
// Url-Example: laravel6.test/?name=FooBar
// View-File: test.blade.php
Route::get('/', function(){
  $name = request('name');

  return view('test', [
    'name' => $name
  ]); 
});

// Mit Parameterübergabe (Short Version) 
// Url-Example: laravel6.test/?name=FooBar 
// View-File: test.blade.php
Route::get('/', function({ 
  return view('test', [ 
    'name' => request('name') 
  ]); 
});


// Wildcard
// URL: laravel6.test/posts/FooBar
// Result: FooBar
Route::get('/posts/{post}, function($post){
  return $post;
});




Blade Template-Engine

// BAD: RAW-Output (Vulnerable for XXS)
<h1><?= $name ?></h1>

// BAD: RAW-Output mit Blade (Vulnerable for XSS)
<h1>{!! $name !!}</h1>

// BETTER: Traditional PHP
<h1><?= htmlspecialchars($name,ENT_Quotes) ?></h1>

// BEST: Laravel Template Engine 
<h1>{{ $name }}</h1>