Hello se

[HTML] form 유효성 검사하기(실무에선 필수!) 본문

web

[HTML] form 유효성 검사하기(실무에선 필수!)

soyamm 2023. 5. 12. 16:52
반응형

폼 데이터의 유효성 검사는 보안상 매우 중요합니다. 사용자가 입력한 데이터를 신뢰하지 않고 바로 데이터베이스에 삽입하면, 악의적인 사용자가 악성 데이터를 입력하여 악용할 수 있습니다.

 

따라서 폼 데이터의 유효성 검사는 필수적입니다. 다음은 몇 가지 유효성 검사 방법입니다.

 

1. 필수 항목 검사

폼에서 반드시 입력해야 하는 필수 항목에 대해 검사합니다. 사용자가 필수 항목을 입력하지 않은 경우, 적절한 에러 메시지를 표시하고 데이터베이스 삽입을 방지합니다.


2. 형식 검사

이메일 주소, 전화번호 등과 같이 특정한 형식을 가져야 하는 데이터의 경우, 해당 형식을 검사합니다. PHP 내장 함수인 filter_var() 함수를 사용하여 이메일 주소, URL 등의 형식을 검사할 수 있습니다.


3.길이 제한 검사

사용자가 입력한 데이터의 길이가 지정한 길이를 초과하는지 검사합니다. 데이터베이스 필드의 최대 길이를 초과하는 경우, 데이터베이스 삽입을 방지합니다.


4. XSS(Cross-Site Scripting) 검사

사용자가 입력한 데이터에 악성 스크립트가 포함되어 있는지 검사합니다. htmlspecialchars() 함수를 사용하여 스크립트 태그 등을 HTML 엔티티로 변환하면, XSS 공격을 방지할 수 있습니다.

 


이외에도, 입력 데이터에 대해 정규식을 사용하여 검사하는 방법 등이 있습니다. 모든 입력 데이터에 대해 적절한 유효성 검사를 수행하여 보안성을 높이는 것이 좋습니다.

 

 

XSS(Cross-Site Scripting) 검사

XSS(Cross-Site Scripting)는 웹 어플리케이션에서 발생하는 취약점 중 하나로, 악의적인 사용자가 스크립트 코드를 삽입하여 공격하는 것입니다. 이를 방지하기 위해, 입력 데이터를 검증하고 필터링하는 방법을 사용할 수 있습니다.

 

PHP에서는 htmlspecialchars() 함수를 사용하여 입력 데이터를 HTML 엔티티로 변환함으로써 XSS 공격을 방지할 수 있습니다. 이 함수는 입력 데이터에 포함된 HTML 태그를 HTML 엔티티로 변환하여 출력합니다. 예를 들어, < 문자는 &lt;로, > 문자는 &gt;로 변환됩니다.

 

아래는 htmlspecialchars() 함수를 사용하여 입력 데이터를 필터링하는 예시 코드입니다.

 

$input_data = $_POST['input_data'];
$filtered_data = htmlspecialchars($input_data, ENT_QUOTES, 'UTF-8');

 

htmlspecialchars() 함수는 두 번째 매개변수로 변환할 HTML 엔티티의 유형을 지정할 수 있습니다. ENT_QUOTES 옵션을 사용하면, 따옴표와 큰따옴표도 HTML 엔티티로 변환됩니다. 세 번째 매개변수로는 문자열 인코딩 방식을 지정할 수 있습니다.

 

위 코드에서 $input_data는 입력 데이터를 담고 있는 변수이며, $filtered_data는 필터링된 데이터를 담고 있는 변수입니다. 이렇게 필터링된 데이터를 출력하면, XSS 공격을 방지할 수 있습니다.

반응형
Comments