天道酬勤,学无止境

Hide the parameters passed through href tag

I am passing parameters through href tag as below:

<a href='message.php?toid=$userid&name1=$fname&name2=$lname'>

When I get redirected to message.php, the three parameters are visible on address bar. How can I hide these parameters? I came across .htaccess as one of the solution but without .htaccess I would like to hide the parameters

标签

评论

No, you cannot hide the parameters that are sent through the <a> anchors tags.

However, you can obfuscate the parameters by encrypting them and then decrypting them on your server-side script.

A simple illustration using an encryption decryption ...

test1.php

<?php
$key_value = "somekey"; //<--- This is a key for the encryption decryption process
$plain_text = "the secret !"; //<-- The actual text you are going to send.
$encryptedmsg = mcrypt_ecb(MCRYPT_DES, $key_value, $plain_text, MCRYPT_ENCRYPT); //<-- Encrypting...
echo "<a href=test2.php?enc=$encryptedmsg>Click Here</a>"; //<-- Your anchor tag

test2.php

<?php
$key_value = "somekey"; //<--- Note..the same key !
$decryptedmsg = mcrypt_ecb(MCRYPT_DES, $key_value, $_GET['enc'], MCRYPT_DECRYPT); //<-- Decrypting
echo $decryptedmsg; //<-- Prints "the secret"

When clicked the link.. the test2.php will get the enc parameter and then decrypt it using the code , however, users will not be able to read the plain text.. the secret !

This is how it looks on the addressbar when you click the link from test1.php...

http://localhost/ext1/test2.php?enc=%D4%1D%96F|C%8B%8C%D7%8AP%19=%13%F6%A1

Warning : The mcrypt_ecb is deprecated. I just used it for the illustration purposes to give you an idea of what is happening.

Add this link on the top of your code in message.php file

<?php if($_GET['toid']) echo header("location:message.php"); ?>

The only way that I can think of you doing this is if you have a form with hidden input fields and the tag is your submit. Just set the action as post.

You can use jQuery to submit POST data as well, something like the following example:

$('#post').click(function(e) { // we assigned our link the id "post"
    e.preventDefault();
    var url = $(this).attr('href');
    $.ajax({
          type: "POST",
          url: url,
          data: { name: 'John Doe', address: 'Some address' },
    })
    .done(function(data) {
              // $(".success").html( data ); // Optionally display result from post page instead of redirecting
              $(".success").html('We made a post! Yeah, redirecting you somewhere!');
              var end = setTimeout(function() {
                      window.location.replace(url);
                      clearTimeout(end);
                  }, 200);
    })
    .fail(function() {
        $('.success').html('Something went wrong!');
    });
});

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 隐藏由 Struts 2 中的 URL 标签传递的参数 [重复](Hide parameter passed by URL Tag in Struts 2 [duplicate])
    问题 这个问题在这里已经有了答案: 隐藏从 jsp 到 struts2 动作类的传递参数2 个回答 3年前关闭。 在我的 Struts 2 应用程序中,我使用迭代器标记并使用各自的 getter 和 setter 从数据库中获取值表。 例如,我正在获取帐号、姓名和帐户余额的列表。 现在,我没有做的是,如果有人点击帐号,那么请求将被发送到另一个需要 getter 和 setter 的操作类,并将他重定向到一个页面,在该页面上将根据以下内容显示帐户详细信息那个帐号。 问题是,当用户单击 URL 时,值像获取参数一样传递,因此非常不安全。 我想隐藏这些值。 目前我正在使用以下内容: <s:url action="custACDetails" var="urlTag" > <s:param name="yourAc"><s:property value="acno"/></s:param> </s:url> <a href="<s:property value="#urlTag" />" ><s:property value="acno"/></a> 回答1 您可以添加一个表单来触发表单提交事件,而不是默认链接的click事件。 表单应该包含一个隐藏字段来保存参数值。 然后添加javascript代码来处理click事件。 <s:url action="custACDetails"
  • 当 url 包含某个参数时隐藏页眉/页脚(Hide header/footer when url contains a certain parameter)
    问题 我有一个多页网页,所有页面上都有页眉和页脚,我正在创建一个可以查看页面某些区域的应用程序,但我不想在浏览应用程序时显示页脚和页眉。 当我通过应用程序访问页面时,应用程序会向 url 添加一个参数。 像这样: www.mypage.com?inapp=true 使用 java 脚本和 css 最有效的方法是什么? 回答1 <script> $(document).ready(function(){ var url = window.location.href; if(url.search('inapp=true') === true){ $('header').css('display', 'none'); } }); </script> 回答2 您可以在 url 中搜索参数并隐藏元素(如果他在场)。 JavaScript解决方案测试每个参数以获得更多字体 var url = "www.test.fr?inapp=true"; //replace with window.location.href if(url.indexOf("?")!=-1)//parameters exists { var urlparameters = url.split("?")[1]; var parameters = urlparameters.split("&");//store all
  • Hide parameter passed by URL Tag in Struts 2 [duplicate]
    This question already has answers here: hide passed parameter from jsp to struts2 action class (2 answers) Closed 3 years ago. In my Struts 2 Application, I am getting a table of values from the database using the iterator tag and using respective getter and setters for the same. For Example I am getting list of Account number, Name and Account Balance. Now, What I wasn't do is if some one click on the Account number, then the request will be sent to another action class which has required getter and setter and will redirect him to a page where the account details will be shown based on that
  • 如何在 Javascript 中的标签点击时切换(隐藏/显示)表格(How to toggle (hide/show) a table onClick of <a> tag in Javascript)
    问题 我想显示和隐藏(切换) <a>的<table> onClick事件。 这是我的<a>标签 <a id="loginLink" onclick="toggleTable(true);" href="#">Login</a> 这是我的 Javascript 函数toggleTable(hide) : <script> function toggleTable(hide) { if (hide) { document.getElementById("loginTable").style.display="table"; document.getElementById("loginLink").onclick = toggleTable(false); } else { document.getElementById("loginTable").style.display="none"; document.getElementById("loginLink").onclick = toggleTable(true); } } </script> 这是我的<table>标签: <table id="loginTable" border="1" align="center" style="display:none"> 当我第一次单击<a> link它会显示我的表格
  • How to pass a query string to Ajax call with jQuery?
    This is a follow up to my previous question (unresolved). I fetch items from the database and display them in a for loop. I use jQuery to hide one of the rows. Now I need to get the main_id of that hidden row and pass it to $.ajax. In the original question Paul suggested to use alert(this.attr("title")); but this line stops the execution of the $.ajax call and the call is not executed. When I comment out the alert alert(this.attr("title")); then the ajax call goes through. In that case, I get an error because the display_false() function in the handler does not get the value of the main_id
  • Getting JavaScript and ASP.NET Interaction Together
    Here's the definition of my ASP.NET GridView control: <asp:GridView ID="gvReq" runat="server" AllowSorting="True" DataKeyNames="Req_ID,Approved,supervisor_login,Revised,Requested_Login,HasDocs" DataSourceID="objdsReq" AllowPaging="True" PageSize="30" > In this GridView, I have the following template field: <asp:TemplateField> <ItemStyle HorizontalAlign="Center" Width="50px"></ItemStyle> <ItemTemplate> <asp:Button ID="btnDelete" runat="server" CommandArgument='<%# Container.DataItemIndex %>' ForeColor="Red" CommandName="DeleteReq" OnClientClick="showConfirm(this); return false;" Text="Delete" /
  • Laravel:如何隐藏 url 参数?(Laravel : How to hide url parameter?)
    问题 这里的场景是我想传递一个变量,该变量将从一个页面发送到另一个页面,并在下一页中通过表单存储。 所以我已经通过 URL 将变量从第一页传递到第二页。 但我想隐藏 URL 中的参数。 我该怎么做? 这是我的路线: Route::get('/registration/{course_id}',[ 'uses'=>'AppController@getregistration', 'as'=>'registration' ]); 和控制器: public function getregistration($course_id) { return view('index')->with('course_id',$course_id); } 第一页这是我将值发送到第一页的方式: <li> <a href="{{route('registration',['course_id' => '1'])}}">A</a> </li> 回答1 邮寄方式 路线 Route::post('/registration',['uses'=>'AppController@getregistration','as'=>'registration']); 看法 {!!Form::open(array('url' => '/registration')) !!} {!! Form::hidden('course_id
  • jQuery onclick 隐藏其父元素 [关闭](jQuery onclick hide its parent element [closed])
    问题 很难说出这里问的是什么。 这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。 如需帮助澄清此问题以便重新打开它,请访问帮助中心。 8 年前关闭。 我想用 jQuery 在<a>标签点击上隐藏<li>标签。 <ul> <li> <a href="'>Something</a> </li> <li> <a href="'>Something</a> </li> <li> <a href="'>Something</a> </li> </ul> 换句话说,如果有人点击链接( <a></a> ),其父<li>将被隐藏。 回答1 (function() { $("ul li a").click(function(e) { e.preventDefault(); $(this).parent().hide(); }); })(jQuery); 还可以尝试“一个”jQuery 函数 (function() { $("ul li a").one('click', function(e) { e.preventDefault(); $(this).parent().hide(); }); })(jQuery); 回答2 使用 .click 处理事件,然后使用 .parent 和 .hide 方法。 $("a").click(function(){ $(this)
  • 将公司徽标添加到ShinyDashboard标头(Adding a company Logo to ShinyDashboard header)
    问题 因此,很好奇,有什么方法可以在ShinyDashboard的标题中添加公司徽标吗? 在查看文档时,它描述了如何更改CSS中的“徽标”,这只是配置左上角的内容,尽管据我所知,我希望将标题保留在此处。 我没有使用下拉菜单,因此我想在红框所在的右上角添加公司徽标。 有谁知道如何使用Shinydashboard做到这一点? 谢谢。 更新2020-10-27 对于那些熟悉HTML或希望在其用户界面周围具有更大灵活性并可以访问前端开发人员的用户,我最近发现您可以使用HTML构建整个用户界面。 这里有一篇关于它的闪亮文章。 如果需要的话,这将使整个品牌和布局能够符合您公司的标准。 希望这可以帮助。 回答1 我为此一直在努力工作,(我知道您并没有要求它,但在使用时,这是一个可点击的徽标): library(shiny) library(shinydashboard) dbHeader <- dashboardHeader() dbHeader$children[[2]]$children <- tags$a(href='http://mycompanyishere.com', tags$img(src='logo.png',height='60',width='200')) dashboardPage( dbHeader, dashboardSidebar(), dashboardBody(
  • Laravel : How to hide url parameter?
    Here the scenario is I want to pass a variable which will be send from one page to another and in next page it's gonna store through a form. So I have passed the variable from first page to second page through the URL. But I want to hide the parameter in the URL. How do I do it? Here is my route : Route::get('/registration/{course_id}',[ 'uses'=>'AppController@getregistration', 'as'=>'registration' ]); And Controller : public function getregistration($course_id) { return view('index')->with('course_id',$course_id); } And first page this is how I send the value to first page: <li> <a href="{
  • 让 JavaScript 和 ASP.NET 交互在一起(Getting JavaScript and ASP.NET Interaction Together)
    问题 这是我的 ASP.NET GridView 控件的定义: <asp:GridView ID="gvReq" runat="server" AllowSorting="True" DataKeyNames="Req_ID,Approved,supervisor_login,Revised,Requested_Login,HasDocs" DataSourceID="objdsReq" AllowPaging="True" PageSize="30" > 在这个 GridView 中,我有以下模板字段: <asp:TemplateField> <ItemStyle HorizontalAlign="Center" Width="50px"></ItemStyle> <ItemTemplate> <asp:Button ID="btnDelete" runat="server" CommandArgument='<%# Container.DataItemIndex %>' ForeColor="Red" CommandName="DeleteReq" OnClientClick="showConfirm(this); return false;" Text="Delete" /> </ItemTemplate> <ItemStyle HorizontalAlign="Center
  • 闪亮:使用隐藏选项卡启动应用程序,没有延迟(shiny: start the app with hidden tabs, with NO delay)
    问题 我想构建一个应用程序,并且在用户输入正确的密码之前,某些选项卡将对用户隐藏。 我知道如何使用shinyjs::hideTab做到这shinyjs::hideTab : library(shiny);library(shinyjs) ui <- fluidPage(useShinyjs(), navbarPage("hello", id="hello", tabPanel("home", br(), h3("this is home"),passwordInput("pass", "enter 'password' to see the tabs: "),actionButton("enter", "enter")), tabPanel("tab2", br(), h4("this is tab2")), tabPanel("tab3 with a lot of stuff in it", br(), h4("this is tab3")))) server <- function(input, output, session) { hideTab("hello", "tab2"); hideTab("hello", "tab3 with a lot of stuff in it") observeEvent(input$enter, { if (input$pass ==
  • 是否可以隐藏 href 标题?(Is it possible to hide href title?)
    问题 <a href="link.html" title="Titletext"> ...是代码。 由于 slimbox,我需要使用title属性,但我想隐藏将鼠标悬停在链接上时显示的标题文本。 有任何想法吗? 回答1 假设您在 a 标签中使用图像标签,您可以为图像使用替代标题(甚至是空格),当您将鼠标悬停在链接上时,它将覆盖链接的标题。 回答2 一个不错的简单怎么样: <a href="link.html" title="Titletext"><span title=" ">text</span></a> (最好在嵌套标题中放一些实际有用的东西。) 回答3 使用 jQuery 这真的很容易 $("li.menu-item > a").attr('title', ''); 这将从 li 类菜单项的任何 a 元素中删除标题 - 当然你可以花哨,所以它们只是在鼠标悬停时隐藏:) 回答4 关于我在几个网站上看到的“一个简单的好东西怎么样”的建议,我个人不建议这样做,原因有两个。 屏幕阅读器和视障用户依赖于大声朗读的标题属性。 我相信这是它们在锚标签中的最初目的和原因,并且是美国政府 Web Accessibility Section 508 的一个重要方面。我认为在这种情况下,屏幕阅读器会通读所有标题; 第一个然后是第二个,这对于视障用户来说可能会非常混乱。
  • Thymeleaf通过fragment实现组件化
    通过th:fragment提取公共的代码 方式一: 抽取一个公共片段: th:frament="片段名" 引入公共片段的方式有三种: th:insert:将公共片段整个替换到标签中th:replace:公共片段直接对标签以及标签内部的内容进行替换th:include:公共片段(不包括自己的主标签)对标签内容进行替换 在页面中引用: ~{模板名 :: 片段名} 方式二: 在要提取的公共片段上添加能够唯一标识该标签的id或css等属性,之后通过 {模板名 :: 选择器} 的方式引用。 样例 需要抽取的公共片段component.html,我们可以将多个需要抽取的片段写在一个文件里面: <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <div th:fragment="com1"> 111 </div> <div th:fragment="com2"> 222 </div> <div id="com3"> 333 </div> </html> 在页面中使用: <!DOCTYPE html> <!--把html 的名称空间,改成:`xmlns:th="http://www.thymeleaf.org"` 会有语法提示--> <html lang="en" xmlns:th="http://www
  • Vue-过渡&动画
    1. Vue中的CSS动画原理 如果要元素具有动画效果,则需要在元素外部包裹一个transition(过渡)标签,这样Vie就会自动帮我们构建一个动画流程;同时我们可以给标签通过name属性取一个名字,(如果不取名,Vue默认的class前缀是v)例如: <div id="root"> <transition name="fade"> <div v-if="show">Hello</div> </transition> <button @click="handleClick">click</button> </div> (1)显示过渡效果的流程: 在动画即将被执行的一瞬间,它会往div元素里边增加两个class——fade-enter和fade-enter-active;当动画第一帧执行完毕,即将开始第二帧动画的时候,Vue会帮助我们干两件事情——去掉fade-enter这个class,同时增加fade-enter-to这个新的class;动画会继续执行,直到要结束的时候,把之前增加的两个class——fade-enter-active和fade-enter-to删除掉 (2)隐藏过渡效果的流程: 跟显示的流程类似,这里我就不赘述了嘻嘻😃 实际上Vue实现动画是通过——在某一时刻,自动地往一些标签上增加一些样式来实现的 kangkang示例代码: <!DOCTYPE html>
  • PHP通过href传递变量id(PHP passing variable id through href)
    问题 我想要一个链接到另一个页面,具有特定的主题,我如何传递 id ? <table class="table table-hover"> <thead> <tr> <th>Subject</th> <th>Add Topic</th> </tr> </thead> <tbody> <tr> <?php foreach($subjects as $sub):?> <td><?php echo $sub->subject;?></td> <td><a href='approve.php?id=".$sub->id."' role="button" class="btn">Add Topic</a></td> </tr> <?php endforeach;?> </tbody> </table> 回答1 您仍然需要将其回显。 <?php foreach($subjects as $sub): ?> <tr> <td><?php echo $sub->subject ?></td> <td><a href="approve.php?id=<?php echo $sub->id ?>" role="button" class="btn">Add Topic</a></td> </tr> <?php endforeach; ?> 回答2 请尝试以下操作: <table class=
  • xss-labs 小结
    xss-labs 。。。 level1 有个回显,那么替换成js代码。 <script>alert(‘xss’)</script> #alert是一个弹窗,所有的js代码都要放在<script>里面才会被当作js代码执行 在控制台输入代码调用 <h2 align=center>欢迎用户test</h2> $str = $_GET["name"]; echo "<h2 align=center>欢迎用户".$str."</h2>"; 服务器通过get方式将传递过来的name参数的值赋给了str变量,然后str变量直接插入了h2标签之中。 其余的过关方式 可以通过/<scr/ipt/>标签弹窗,可以通过标签里的onerror事件弹窗,可以通过javascript弹窗 level2 由于从url地址来看。想到还是上面的get方式传递参数。第一关一样,也是直接输出内容,但是输出的内容在一个文本框里面。so继续套娃,可惜并没有成功 level1 源代码 对比,通过查看页面的源代码,发现传递的参数输出的位置 注入的恶意代码的尖括号都被编码成了html字符实体? 既然被编码了,所以就要想办法让浏览器执行属性值中的恶意代码了啦,因为输出的位置在一大段文字中,只需要闭合前后将js标签调用出来就行了 ` <?php ini_set("display_errors", 0); $str = $_GET[
  • 01-Springboot博客项目
    本系列是对李仁密老师的视频的学习记录 前端页面设计与实现部分不会在此展示,直接上后端部分。 项目源码和教程可以点击上面链接进行学习 码云地址:项目源码 项目搭建 1. 创建项目2. 配置项目3. 定制日志4. 关联静态页面5. 实体设计6. 创建实体,生成数据库表7. admin后台7.1 登陆管理页面补充笔记(重点)1. 控制器之间的数据交互2. 转发和重定向的区别3. 前后端的数据交互 MD5加密登录拦截器 7.2 分类、标签管理后端校验 7.3 博客管理(含重要注释)简单分页查询复杂分页查询 8. 前端展示8.1 首页展示8.2 全局search8.3 文章详情页8.4 详情评论8.5 按分类/标签展示按分类展示按标签展示 8.6 博客归档8.7 关于我与功能完善 9. 打包运行10. 项目thymeleaf知识点11. 相关UI技术selection前端非空校验 1. 创建项目 IDEA利用Spring初始化工具创建 依赖选择如下 2. 配置项目 更改thymeleaf版本 pom文件中 <properties> <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version> <
  • PHP隐藏id显示在href url中(PHP Hide id from being shown in a href url)
    问题 我有两个 MySQL 表。 第一个用于用户的凭据,即用户名、密码、business_id(系统生成)。 第二个具有多个实体的用户配置文件,例如企业名称、位置、profile_id 和企业 ID(系统生成 - 与 business_id 相同的数字)。 用户可以编辑他们的业务细节的细节,即他们在第二个表格中的细节。 业务 ID 将显示为“abcdef”,配置文件 ID 将显示为 1234567,如果他们有第二个业务配置文件,则显示为 1235879。 为了编辑每个配置文件,我必须有以下 URL <a href="edit_profile.php?id=1234567">Edit Business Profile</a> 对于第二个,它将是 <a href="edit_profile.php?id=1235879">Edit Business Profile</a> 反过来,当点击 a href 时,浏览器中的 url 将是edit_profile.php?id=1234567 ,第二个将是edit_profile.php?id=1235879 是否有可能在 URL 中没有edit_profile.php?id=1234567和edit_profile.php?id=1235879我会有edit_profile.php?id=1234567而第二个是edit_profile
  • jQuery:当单击 1 时淡出 2 个元素(jQuery: fading out 2 elements, when 1 has been clicked)
    问题 我有一个 PHP/PostgreSQL/Oracle 脚本,它将链接显示为“标签”,可以单击以仅显示与该“标签”匹配的数据库记录。 然后我在每个“标签”附近都有一个“X”,以便用户可以隐藏无趣的“标签”: 我想为两个元素(“标签”和“X”)添加淡出效果——当“X”被点击时。 所以我正在尝试: <!DOCTYPE html> <html> <head> <style> a.hide { color:#3E6D8E; background-color: #E0EAF1; border-bottom: 1px solid #3E6D8E; border-right: 1px solid #7F9FB6; padding: 3px 4px 3px 4px; margin: 2px 2px 2px 0; text-decoration: none; font-size: 90%; line-height: 2.4; white-space: nowrap; } a.hide:hover { background-color: #e7540c; color: #E0EAF1; border-bottom: 1px solid #A33B08; border-right: 1px solid #A33B08; text-decoration: none; } a.filter {