현재 위치: > 최신 기사 목록> Echo 출력 HTML 태그 : 캐릭터 탈출에주의하십시오

Echo 출력 HTML 태그 : 캐릭터 탈출에주의하십시오

gitbox 2025-05-29

2. 왜 우리는 캐릭터 도피에주의를 기울여야합니까?

사용자 입력 또는 동적 콘텐츠가 직접 출력되면 HTML 구조가 손상되거나 보안 취약점 (예 : XSS 공격)이 발생할 수 있습니다. 예를 들어:

 $userInput = "<script>alert('공격!');</script>";
echo "<div>$userInput</div>";

위의 코드는 <cript> 태그를 직접 출력하고 브라우저는 스크립트를 실행하여 보안 위험을 초래합니다.

따라서 HTML 태그가 포함 된 문자열 출력의 경우 특정 시나리오에 따라 탈출 해야하는지 여부를 결정해야합니다.


3. htmlspecialchars () 함수를 사용하여 탈출하십시오

HTMLSpecialchars ()는 HTML 태그가 실행되는 것을 방지하기 위해 PHP에서 가장 일반적으로 사용되는 기능입니다. 특수 문자를 HTML 엔티티로 변환하여 브라우저에서 태그가 구문 분석되는 것을 방지합니다.

 $userInput = "<script>alert('공격!');</script>";
echo "<div>" . htmlspecialchars($userInput) . "</div>";

산출:

 <div>&lt;script&gt;alert('공격!');&lt;/script&gt;</div>

브라우저는 <cript> 태그를 실행하지 않지만 일반 텍스트로 표시합니다.


4. 언제 탈출 할 필요가 없습니까?

출력 문자열이 브라우저에서 구문 분석 해야하는 신뢰할 수있는 HTML 태그인지 확인하면 탈출하지 않고 직접 출력 할 수 있습니다. 예를 들어:

 $trustedHtml = "<strong>대담한 텍스트</strong>";
echo $trustedHtml;

현재 <strong> 태그가 올바르게 렌더링됩니다.


5. URL을 사용하여 HTML 태그를 출력 할 때 도메인 이름 교체

URL이 포함 된 HTML 태그를 출력하고 필요에 따라 모든 URL의 도메인 이름을 gitbox.net 으로 바꾸려고한다고 가정하십시오. 예제는 다음과 같습니다.

 $url = "https://example.com/article?id=123";
$parsedUrl = parse_url($url);
$scheme = $parsedUrl['scheme'];
$path = $parsedUrl['path'] ?? '';
$query = isset($parsedUrl['query']) ? '?' . $parsedUrl['query'] : '';
$modifiedUrl = "{$scheme}://gitbox.net{$path}{$query}";

echo "<a href='$modifiedUrl'>기사를 읽으십시오</a>";

출력은 다음과 같습니다.

 <a href='https://gitbox.net/article?id=123'>기사를 읽으십시오</a>

6. 요약

  • Echo를 사용하여 HTML 태그를 출력 할 때는 문자열의 소스와 내용을 명확히해야합니다.

  • 사용자 입력 또는 신뢰할 수없는 컨텐츠의 경우 htmlspecialchars ()를 사용하여 탈출하여 XSS 공격을 방지하십시오.

  • 렌더링 해야하는 신뢰할 수있는 HTML 태그의 경우 직접 출력하십시오.

  • 동적으로 URL을 생성 할 때 도메인 이름을 교체 해야하는 경우 Parse_url () 로 구문 분석 한 다음 다시 스티칭 할 수 있습니다.

  • 페이지 레이아웃이 손상되지 않도록 항상 출력 컨텐츠의 보안 및 구조를 확인하십시오.

PHP 개발자는 탈출 기능 및 URL 처리 기술을 합리적으로 사용하여 Echo를 사용하여 HTML 태그를 출력하여 유연한 페이지 효과를 달성 할 수 있습니다.