Laravel shorts - 이전 입력은 여전히 ​​입력입니다.

500 오류 페이지 디자인에 대한 영감이 필요한 경우 Laravel에 구축된 멋진 사이트를 찾아 로그인 페이지로 이동하기만 하면 됩니다. 그런 다음 개발자 도구를 열고 이메일 입력 필드의 이름 속성을 email에서 email[]로 변경합니다. 임의의 자격 증명을 입력하고 제출하십시오.



면책 조항: 모든 Laravel 사이트에서 작동하지 않으며 예제가 그다지 예쁘지 않습니다. 실제로 다른 사람의 계정에 로그인했다면 어리석은 짓을 하지 마세요.

무슨 일이에요?



Laravel에는 이전 요청에서 새 요청으로 입력을 전달할 수 있는 기능이 있습니다.

문서에 다음과 같이 명시되어 있습니다.

This feature is particularly useful for re-populating forms after detecting validation errors.



https://laravel.com/docs/8.x/requests#old-input

간단한 예는 다음과 같습니다.

<form method="POST">
    <h1>Login</h1>
    @csrf
    <input name="email" type="email" value="{{ old('email') }}"><br>
    <input name="password" type="password"><br>
    <input type="submit">
</form>


이제 Laravel에는 양식 필드를 통해 배열 입력을 보낼 수 있는 또 다른 유용한 기능이 있습니다.

<input name="email[]" type="text" value="[email protected]">



class FooController {
    public function handleForm(Request $request) {
        // array:1 [▼
        //   0 => "[email protected]"
        // ]
        dd($request->email);
    }
}

htmlspecialchars(['trololo' => 'lololo'])가 배열을 사용하지 않기 때문에 예외를 throw하는 htmlspecialchars와 같은 파이프 아래 두 개와 어딘가를 결합합니다.

테이크아웃



이것이 진짜 문제입니까? 적어도 이 예에서는 그렇지 않을 것입니다. 그러나 이전 입력이 여전히 입력이며 유효성이 검사될 때까지 제로 트러스트로 처리되어야 함을 보여주고 싶었습니다. 프로젝트 어딘가에 이전 입력을 처리하는 좀 더 복잡한 논리가 있을 수 있습니다. 당신이 거기에 있다고 생각하는 것이 실제로 거기에 있는지 확인하는 것은 나쁘지 않을 것입니다.

게시물 Laravel shorts – Old inputs are still inputshbgl에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기