我制作了一个简单的 base64 解码器形式,它通过文本区域接收输入。我假设输入是 base64 编码的。如果它不是 base64 输入,并且出现 PHP 错误或返回垃圾,我暂时不介意。但是,从安全角度来看,我是否需要对此输入进行任何验证或清理?
该页面称为 error-decoder.php,它提交给自己,不与数据库或其他任何东西交互。这是整个事情:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div id="container" style="width: 80%; margin: 0 auto; font-family: sans-serif;">
<form name="error-decoder" action="error-decoder.php" method="post">
<textarea name="error-text-area" style="width: 100%; height: 400px;">
<?php if(!empty($_POST['error-text-area'])){ echo $_POST['error-text-area']; } ?>
</textarea>
<button type="submit" style="float: right;">Decode</button>
</form>
<?php
if(!empty($_POST['error-text-area'])){
?>
<p>Output:</p>
<hr>
<div id="error-output">
<br />
<?php
echo base64_decode($_POST['error-text-area']) . "</div>";
}
?>
</div>
</body>
</html>
是否需要做任何事情来保证用户或我的服务器的安全?是否有我需要担心的重要 php.ini 设置会影响您的回答?我不关心错误或垃圾,除非它会如何影响安全性。感谢您提供这方面的任何信息!
最佳答案
当你输出到 html 时,你应该使用 htmlspecialchars()
来避免你的数据破坏 html。当然,除非你正在输出 html 本身。
所以:
echo htmlspecialchars(base64_decode($_POST['error-text-area']));
关于php - 在仅与自身交互的 PHP Web 表单中,什么验证是重要的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12716973/