我有一个网站,其中包含一个提交到php页面的输入表单,并将一个玩家用户名添加到数据库中,并将该玩家姓名的视图计入前10名列表。
我的朋友尝试输入其他内容,例如html代码和javascript。 它会显示在我的前10名列表中。
您有什么建议可以让我的表格更安全吗? 我一直在寻找年龄,还没找到任何东西。 所有帮助将受到高度赞赏:)
<form method="get" action="player.php">
<div class="form-group">
<div class="input-group input-group-lg">
<input name="user" type="text" class="form-control" placeholder="Steve" aria-describedby="sizing-addon2">
<span class="input-group-btn">
<input type="submit" class="btn btn-success" value="View Skin">
</span>
</div>
</form>
答案 0 :(得分:0)
围绕用户名冻结您的要求,例如包含特殊字符和最大长度等的字母数字。使用javascript正则表达式编写验证逻辑。拒绝其他一切失败。
答案 1 :(得分:0)
不允许用户输入特殊字符是阻止它的最佳方法。为了更加安全和自信,每个文本框都有一组有限的有效字符,并在客户端和服务器端验证它们。
一个例子是
function validateUsername(){
var username = document.getElementById('txt_username').value;
if( /[^a-zA-Z0-9]/.test( username ) ) {
alert('Input is not alphanumeric');
return false;
}
return true;
}
在服务器端,您还可以使用正则表达式。喜欢以下
if(preg_match('/[^a-z_\-0-9]/i', $username))
{
echo "not valid string";
}
答案 2 :(得分:0)
客户端(HTML / Javascript)验证只是对用户很好并且响应迅速,它总是可以被恶意用户规避。所有需要的验证都应该在服务器端完成,即使它重复在客户端进行验证。