데이터 유효성을 검사하는 올바른 방법은 무엇입니까? 난 당신이 삽입 기능을 가지고 있다고 의미 :PHP 유효성 검사 - 함수 내부 또는 외부에서?
function newUser($name, $lastname, $age) {
// some validation process
$this->pdo->prepare("INSERT INTO user VALUES (?,?,?)",
array($name, $lastname, $age)); // this is another class
// that runs execute in itself
}
그래서 기본적으로 문제가 //some validation procecss
부분이 NEWUSER 기능에서 이루어져야하거나이 기능을 외부에서 수행할지 여부입니까? 클래스에 기본 유효성 검사 규칙을 저장하고 자동으로 내 get
및 post
값을 필터링하는 요청 클래스를 작성 중이므로 요청하는 중입니다. 그래서 만약 내가 그렇게한다면, newUser 내부에서도 (이와 비슷한 다른 함수에서도) 유효성을 검사한다면, 동일한 입력을 두 번 또는 세 번 유효성을 검사한다는 것을 의미합니다.
newUser 함수에 전달 된 변수가 이미 유효하다고 가정하면 간단히 말해서 잘못 되었습니까? 이 경우 newUser는 내 응용 프로그램에서만 호출됩니다 (제 3자가 권한없이 함수를 실행할 수 있는지 여부는 확실하지 않습니다. 실제로 이것이 질문에 대한 이유입니다). 따라서 변수는 이미 유효성이 검사됩니다. newUser 함수를 호출하기 전에.
P.S : 죄송합니다. 질문이 복잡한 방식으로 묻는다면, 제가 의미하는 바를 이해하지 못한다면 그냥 덧글하십시오.
네, 그게 내가 계획하고있는 것입니다. 그러나 "스크립트를 안전하게"한다는 것은 무엇을 의미합니까? 안전하지 않은 스크립트의 예를 보여줄 수 있습니까? – Shaokan
글쎄요, XXS, cross side scripting이라는 것이 있습니다. 타사 사람들이 자신의 스크립트를 스크립트에 넣을 수 있습니다. 내 게시물에 예제를 넣을 것입니다. – Wesley
아, 그래. 내가 알지 못하는 무언가를 생각했습니다 :) 물론 유효성을 검사하면서 물론 xss 나 SQL injection 공격을 막기 위해 노력하고 있습니다 :) – Shaokan