요청 개체에서 매개 변수를 가져 오는 것에 대한 질문이 있습니다.요청의 매개 변수 액세스
$name = $request->name;
OR
$name = $request->input("name")
차이가 무엇
;
이들은 동일한 동작을 보여줍니다. 저는 타이핑 관점에서 # 1 방법을 이용하는 것이 더 빠르다고 요청합니다. 그러나 나는 그 차이를 모른다. # 1은 SQL 인젝션에 취약합니까?
요청 개체에서 매개 변수를 가져 오는 것에 대한 질문이 있습니다.요청의 매개 변수 액세스
$name = $request->name;
OR
$name = $request->input("name")
차이가 무엇
;
이들은 동일한 동작을 보여줍니다. 저는 타이핑 관점에서 # 1 방법을 이용하는 것이 더 빠르다고 요청합니다. 그러나 나는 그 차이를 모른다. # 1은 SQL 인젝션에 취약합니까?
기본적으로 첫 번째 경우는 두 번째 경우의 구문 설탕입니다. Laravel에서 Request는 내부 속성에 액세스하기 위해 __get magic 함수를 구현합니다.
public function all()
{
return array_replace_recursive($this->input(), $this->allFiles());
}
public function __get($key)
{
$all = $this->all();
if (array_key_exists($key, $all)) {
return $all[$key];
} else {
return $this->route($key);
}
}
첫 번째 경우 파일이 업로드 된 경우 Laravel은 먼저 해당 파일 중 속성을 찾습니다. 파일이나 입력에 이러한 매개 변수가없는 경우 Laravel은 경로 매개 변수 중에서 값을 찾습니다.
SQL 주입에 대한 코드를 보호하려면 준비된 문/쿼리 작성기/ORM. 이스케이프/변경 입력을해서는 안되기 때문에 두 가지 기능 모두 SQL 인젝션으로부터 사용자를 보호하지 못합니다.