如何在输入表单中阻止html和url

时间:2015-09-22 01:28:10

标签: javascript php html input

我有一个网站,其中包含一个提交到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>

3 个答案:

答案 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)验证只是对用户很好并且响应迅速,它总是可以被恶意用户规避。所有需要的验证都应该在服务器端完成,即使它重复在客户端进行验证。