【问题标题】:is this HTML input form secure?这个 HTML 输入表单安全吗?
【发布时间】:2016-04-28 06:24:26
【问题描述】:

我设法使用互联网上的许多资源来构建此表单,并且它确实有效。但不知道它是否适合任何休息。

        <form action="/some/server/some.cgi" method="POST">
            <fieldset>
                <legend>contact me:</legend>
                <input type="hidden" name="recipient"
               value="some@some.com">
                <input type="hidden" name="subject"
           value="message ">
                <br>
                <br>
                <table>
                    <tr>
                        <td>
                            <input type="text" name="name" 
                 placeholder="Your Name please" size="30"
            maxlength="30" title="Your name (no numbers)" 
         pattern="[a-zA-Z]{2,30}" required>
                        </td>
                    </tr>

                    <tr>
                        <td>

                            <input type="email" value="email"  
           name="email" placeholder="Provide valid email please" 
                 pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$"
                title="Your VALID email address" size="30" 
             maxlength="50" required>

                        </td>
                    </tr>
                    <tr>
                        <td>
                            <input type="text" name="message" 
            placeholder="Message" size="30" maxlength="200"

            title="Long text is not allowed" 
                   pattern="[a-zA-Z0-9\s]{5,200}" required>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <input type="submit" value="Send" 
                     name="Submit">
                        </td>
                    </tr>
                </table>
            </fieldset>
        </form>

我是 regEx 的新手,想了解此表单可能出现的任何问题。谢谢

【问题讨论】:

  • 表单本身并不是安全问题。这就是你如何处理代码中的输入(尤其是在使用数据库时),你可能会遇到麻烦。

标签: html regex forms input


【解决方案1】:

无论表格是否安全,都没有One 特定答案。它总是取决于攻击者的思维方式。黑客可以想到许多创造性的方法来绕过特定的形式。

主要工作的地方是服务器端的安全性不是 客户端因为可以操作客户端 HTML 和 JavaScript 无论如何。

不管怎样,

您可以参考这些链接:

 code.tutsplus.com/tutorials/secure-your-forms-with-orm-keys--net-4753"
 www.youtube.com/watch?v=ATBdUB-aXko"
 www.formstack.com/features/security

【讨论】:

    【解决方案2】:

    在名称字段中,您不能提供空格,因为您的正则表达式不允许。如果您想允许空格,请更改以下模式

    [a-z A-Z]{2,30}
    

    【讨论】:

    • 嗨,我使用第三个名字输入消息,并且现在可以使用空格,我只是不想添加可调整的文本区域以不破坏网站设计。你知道名称和空格有什么不好的问题吗?
    • 如果您的姓名字段不包含姓氏意味着我们可以跳过空格,否则您应该保留空格。
    【解决方案3】:

    正则表达式将拒绝有效的电子邮件地址。客户端数据验证无法防止有人试图破坏您的应用程序。 “模式”属性是(从内存中)最近添加的,被 Safarai 和旧浏览器忽略。

    您对“安全”的标准是什么。

    【讨论】:

    • 关于“安全”标准的好问题,只是不想接收大量邮件或垃圾邮件。实际安全性将超过 cgi 脚本。我不喜欢使用验证码并决定是否添加模式以形成垃圾邮件机器人很难完成我的电子邮件。
    • 您最不必担心收到大量垃圾邮件。通过使用接收者提交的值,您将在 Internet 上公开一个开放中继。
    猜你喜欢
    • 2020-11-21
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多