【问题标题】:Hide URL on clicking or on-hover单击或悬停时隐藏 URL
【发布时间】:2016-04-13 21:28:38
【问题描述】:
 <div class="ms-logout-form">
   You are logged in.
    <a class="login_button" href="http://example.com/9045?action=logout&amp;redirect_to=http%3A%2F%2Fexample.com%2F&amp;_wpnonce=33">
      Logout
    </a>
</div>

这是我的代码。

当我点击或悬停在注销时,

它显示这样的 URL -

我该如何隐藏它,或者如果我不能隐藏,那么出于安全目的想要替换它。

【问题讨论】:

  • 当他们点击它时,他们会在他们的 url 中看到该链接,所以即使你隐藏它(认为你可以使用 javascript 做到这一点)。可能想要采用不同的方法。
  • 链接是怎样出现的?它是作为浏览器一部分的工具提示吗?如果是,那么没有工具提示的唯一方法是首先不包含链接。但是,如果您出于安全目的想要隐藏这样的链接,那么您这样做是错误的,因为任何人都可以根据需要查看页面中的代码。如果不安全,请勿包含敏感数据。
  • 是 url 是一个安全问题,你有更大的问题

标签: php html url logout


【解决方案1】:

如果您尝试将用户从页面内容中的 url 引导到页面,那么无论是否显示,它总是可以通过一种或另一种方式访问​​(例如,如果用户查看页面源)或不。注销链接的 url 真的不应该是一个安全问题。

但是,如果您真的不希望用户看到它,那么您可以使用一些 JavaScript 向更改 document.location 的链接添加点击操作,但是该代码(以及重定向的 url user to) 仍然会在页面内容中。这可能看起来像这样:

<a href="#" onclick="javascript:window.location='(your logout url)'">Logout</a>

即便如此,当 window.location 发生变化时,用户还是会短暂地看到 url,所以这真的不应该是你应该担心的事情。

【讨论】:

    【解决方案2】:

    试试下面的代码。

    <div class="ms-logout-form">
      You are logged in.
       <a class="login_button" onclick="location.href = 'http://example.com/9045?action=logout&amp;redirect_to=http%3A%2F%2Fexample.com%2F&amp;_wpnonce=33'">
      Logout
    </a>
    

    【讨论】:

    • 它可能会阻止表单悬停,但是当点击时,链接会显示在地址栏。
    • 如果你想隐藏 url 的某些部分,那么你可以在 session 中设置它们。这样你就不需要每次都在 URL 中指定
    【解决方案3】:

    如果你使用 jQuery,只需在 a 标签上绑定一个点击事件。试试这个,

    <div class="ms-logout-form">
       You are logged in.
       <a class="login_button" id="btnLogout">
          Logout
       </a>
    </div>
    

    然后,对于您的 jQuery 代码,

    <script>
    $('#btnLogout').on('click', function() {
       location.href("http://example.com/9045?action=logout&amp;redirect_to=http%3A%2F%2Fexample.com%2F&amp;_wpnonce=33");
    });
    </script>
    

    【讨论】:

      【解决方案4】:

      如果您确实需要提供页面,但将 URL 隐藏在 &lt;a&gt; 悬停以及 URL 地址栏中,您可以考虑使用 iframe 提供页面。我之前做过类似的任务,并且在这个Github Repository 中有代码。

      您正在查看的内容类似于:http://codepen.io/williamli/pen/adWKmQ

      <iframe src="http://www.w3schools.com"></iframe>
      

      您可以使用 CSS 设置 iframe 的高度和宽度,使其看起来像原生页面。

      【讨论】:

        【解决方案5】:

        我认为它会更安全。

        <form name = "testform" method="post" action="http://example.com/9045">
          <input type="hidden" name="action" value="logout">
          <input type="hidden" name="redirect" value="http%3A%2F%2Fexample.com%2F">
          <input type="hidden" name="wpnonce" value="33">
          <input name = "submit" type = "submit" value = "Logout">
        </form>
        

        http://example.com/9045/index.php 文件中添加这个以显示值-

        <?php 
          echo $_POST["action"];
          echo $_POST["redirect"];
          echo $_POST["wpnonce"];
        ?>
        

        我这样做是为了更好的安全目的。你可以试试看。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多