Skip to content
Snippets Groups Projects
web.php 1.58 KiB
Newer Older
  • Learn to ignore specific revisions
  • use Illuminate\Http\Request;
    
    /*
    |--------------------------------------------------------------------------
    | Web Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register web routes for your application. These
    | routes are loaded by the RouteServiceProvider within a group which
    | contains the "web" middleware group. Now create something great!
    |
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
     */
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    Route::post('/{url}', function ($url) {
        abort(405);
    
    Davide Aprea's avatar
    Davide Aprea committed
    Route::post('{password}/{url}', function ($url) {
        abort(405);
    });
    
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    Route::get('healthz', function () {
        return response('', 200)
            ->header('Content-Type', 'text/plain');
    });
    
    
    Route::get('/', function () {
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        if (env("APP_ENV", "") !== "production") {
    
            return view("development");
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        } else {
    
            return redirect("https://metager.de");
        }
    });
    
    
    Route::get('index.css', 'BrowserVerification@verifyCss');
    
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    Route::post('/', function (Request $request) {
    
        $validatedData = $request->validate([
            'url' => 'required|url|max:255',
        ]);
        $url = $request->input('url', 'https://metager.de');
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        $password = md5(env('PROXY_PASSWORD') . $url);
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        $url = base64_encode(str_rot13($url));
        $target = urlencode(str_replace("/", "<<SLASH>>", $url));
    
        return redirect(action('ProxyController@proxyPage', ['password' => $password, 'url' => $target]));
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    });
    
    
    Route::get('{password}/{url}', 'ProxyController@proxyPage')->middleware('throttle:60:1')->middleware('checkpw');
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    
    
    Route::get('proxy/{password}/{id}/{url}', 'ProxyController@proxy')->middleware('browserverification')->middleware('checkpw:true');