Laravel은 단순성과 우아함으로 유명한 최신 PHP 웹 응용 프로그램 프레임 워크입니다. 개발자가 효율적이고 유지 관리 가능한 응용 프로그램을 신속하게 구축 할 수 있도록 풍부한 기능을 제공합니다. 그중에서도 라우팅 함수는 Laravel의 핵심 구성 요소 중 하나입니다.
Laravel에서 라벨에서는 라벨링 매개 변수가 URL 경로의 역동적 인 부분이며 곱슬 버팀대로 싸여 있습니다. 예를 들면 : /users /{id} 입니다. 여기의 ID 는 라우팅 매개 변수이며 요청에 따라 변경할 수 있습니다.
라우팅 매개 변수 확인은 응용 프로그램 보안을 보장하기위한 핵심 측정입니다. 검증되지 않은 매개 변수는 응용 프로그램 논리 예외를 유발하고 악의적 인 공격을받을 수도 있습니다. 매개 변수, 불법 요청, 데이터 유출 및 잠재적 보안 취약점을 확인함으로써 예방할 수 있습니다.
Laravel은 정규 표현식을 사용하여 경로를 정의 할 때 매개 변수 형식을 제한합니다. 이 방법은 매개 변수를 숫자로만 제한하는 것과 같은 간단한 검증 요구 사항에 적합합니다.
Route::get('/users/{id}', function ($id) {
// 처리 로직
})->where('id', '[0-9]+');
위의 코드에서, 여기서 메소드가 ID 매개 변수를 제한하는 곳은 하나 이상의 숫자 문자 여야합니다. 이 규칙이 충족되지 않으면 Laravel은 자동으로 404 오류 페이지로 돌아갑니다.
검증 로직이 복잡한 경우 사용자 정의 규칙을 사용하는 것이 좋습니다. 예를 들어, ID 매개 변수가 짝수 숫자가되기를 원합니다.
먼저 사용자 정의 규칙 클래스를 만듭니다.
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class UserIdRule implements Rule
{
public function passes($attribute, $value)
{
return $value % 2 == 0;
}
public function message()
{
return 'The user id must be even.';
}
}
그런 다음 라우팅 정의에 규칙을 적용하십시오.
use App\Rules\UserIdRule;
Route::get('/users/{id}', function ($id) {
// 처리 로직
})->where('id', new UserIdRule);
이 시점에서 홀수 ID가 전달되면 Laravel은 오류 메시지를 반환합니다.
보다 권장되는 접근 방식은 컨트롤러의 매개 변수 검증을 중앙에서 처리하는 것입니다. 종속성 주입 및 요청 클래스 방법을 검증 함으로써 검증 로직을 더 명확하고 유지 관리하기 쉽게 만들 수 있습니다.
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function show(Request $request, User $user)
{
$request->validate([
'id' => 'required|numeric|even'
]);
// 正确参数처리 로직
}
}
이 예에서 유효성 검사 메소드는 ID 매개 변수가 존재하고 숫자가되어야하며 짝수가되도록합니다. 확인이 실패하면 Laravel은 추가 처리없이 오류 응답을 자동으로 반환합니다.
Laravel의 라우팅 매개 변수 확인은 응용 프로그램 보안을 향상시킬뿐만 아니라 사용자 경험을 향상시킬 수 있습니다. Laravel은 정규 표현식, 사용자 정의 규칙 작성 또는 컨트롤러의 중앙 검증을 통해 이루어 지든 유연하고 강력한 도구를 개발자에게 제공합니다. 개발 과정에서 응용 프로그램의 안정성과 안전을 보장하기 위해 실제 요구에 따라 적절한 방법을 선택해야합니다.