【问题标题】:Is it safe to use anchor to submit form?使用锚提交表单是否安全?
【发布时间】:2023-03-30 17:23:02
【问题描述】:

我在某处读到,使用锚标记提交表单不是很安全,所以这是我的问题:使用锚标记而不是 <button><input type="submit" /> 提交表单是否安全?如果不是,为什么?问题是,我有一个按钮的 CSS 类,它在 <a class="button"> 上显示了我想要的内容,但是如果我将它添加到实际按钮,它会添加一个我不想要的奇怪边框。

谢谢

【问题讨论】:

  • 您应该尝试设置<input type="submit" /> 的样式以满足您的需求。请发布您当前版本的 CSS,以便我们找到删除奇怪边框的方法 :)
  • 谢谢,我已经修好了边框。我只定义了上下边框,所以边上有默认边框。

标签: html forms button anchor


【解决方案1】:

尽量避免使用 javascript 进行操作。使用总是提交按钮。出于安全目的,某些用户可能会禁用 javascript。

虽然您想使用 javascript 提交值,但在编写<html> 标记之前添加以下行。

<!-- saved from url=(0014)about:internet--> <html>

【讨论】:

    【解决方案2】:
    <!-- add the anchor token at the end of your action statement -->
    
    <form method='post' action='this_page.php?put_peram=token#anchor_name'>
    <input type='submit' value='click here'>
    
    <!-- put the anchor right above where you want the page to  index -->
    
    <a name="anchor_name></a>
    

    【讨论】:

    • 锚如何在重定向后幸存下来,这在 POST 之后很常见?
    【解决方案3】:

    要使用锚来提交表单,需要使用 JavaScript 来连接事件。这是不安全的,如果用户禁用了 JavaScript,您将无法提交表单。例如:

    <form id="form1" action="" method="post">
        <a href="#" onclick="document.getElementById('form1').submit();">Submit!</a>
    </form>
    

    如果您愿意,可以使用&lt;button&gt;

    <button type="submit">Submit!</button>
    

    或者坚持我们都知道的:

    <input type="submit" value="Submit!" />
    

    您可以设置所有三个样式,但后两个不需要 JavaScript。如果遇到边框问题,您可能只需要在某处更改一些 CSS。

    【讨论】:

    • 确实如此。但幸运的是,您可以将按钮设置为a。只需从您当前拥有的样式中删除边框。顺便说一句,使用&lt;button&gt; 也有同样的问题。使用&lt;input type="submit"&gt;
    • 尽管在大多数设置中禁用 Javascript 的用户数量确实很少。
    • @nfechner 当然可以,但是如果有一个自 1872 年左右就内置了此功能的非常好的元素,为什么还要冒险和努力。
    • @GolezTrol re:为什么要冒险。设置锚标签的样式比设置输入按钮的样式要容易得多,并且它们与跨不同浏览器应用的各种样式的呈现更加一致。像 Bootstrap 这样的库抽象了样式的复杂性,以便锚标记和输入看起来相同,但是如果您不使用这些库之一,则在整个站点中使用锚标记可能会从渲染和样式的角度使事情变得更清晰。
    • 输入,按钮在 IE 中没有有效的 :hover 状态,在其他浏览器中它是一个伪类。我宁愿接受 0.01% 的用户打击,否则他们将无法在禁用 JavaScript 的情况下使用我的 web 应用程序,而不是必须使用库来让 :hover 在 IE 中工作(同样,Pagespeed 抱怨这方面的性能问题)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2023-04-02
    • 2016-08-25
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多