웹 애플리케이션에서 악의적인 스크립트를 삽입하여 실행하는 공격 기법입니다.
$safeOutput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
$cleanEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
$cleanUrl = filter_var($url, FILTER_SANITIZE_URL);
function e($string) {
return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}
require_once 'HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$cleanHtml = $purifier->purify($dirtyHtml);
header("Content-Security-Policy: default-src 'self'");
header("X-XSS-Protection: 1; mode=block");
header("X-Content-Type-Options: nosniff");
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$jsonData = json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
class Security {
public static function sanitize($input) {
if (is_array($input)) {
return array_map([self::class, 'sanitize'], $input);
}
return htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
}
public static function validateUrl($url) {
return filter_var($url, FILTER_VALIDATE_URL);
}
}
// 폼 데이터 처리
$userInput = $_POST['message'] ?? '';
$safeOutput = Security::sanitize($userInput);
// HTML 출력
echo '<div class="message">' . e($safeOutput) . '</div>';
// JSON 응답
header('Content-Type: application/json');
echo json_encode(['message' => $safeOutput], JSON_HEX_TAG);