【问题标题】:Which javascript code segment the browser will execute in the following code?浏览器将在以下代码中执行哪个 javascript 代码段?
【发布时间】:2017-07-03 12:59:30
【问题描述】:

<body>
    <form method="post" action="index.php">
        Name:<input type="text" name="name" value="<SCRIPT>alert("Scary Script!")</SCRIPT>">
        <input type="submit" name="submit" value="Submit">  
     </form>
    <h2>Your Input:</h2>
    <SCRIPT>
        alert("Scary Script!")
    </SCRIPT><br/>
</body>

网页本身就是 index.php。它是 PHP 处理的页面。它显示了两个 javascript 代码段;浏览器执行的是哪个脚本。

【问题讨论】:

  • 你为什么不试试呢?

标签: javascript html


【解决方案1】:

第二。首先是输入文本,由浏览器编码。并且由于值内的双引号字符也无效。

【讨论】:

  • 谢谢 但是,如果它把可怕的脚本放在单引号里呢?
  • 如果你只是告诉你你想做什么会更简单。防止脚本注入,或试图做一个? :p
  • 使用单引号时效果相同。尝试一下。和你另一个 javascript 的文本来确定哪个 javascript 被触发。
  • @Kaddath .. 其实我是一个新的学习者。我试图学习 htmlspecialchar() 函数的使用。我在没有 htmlspecialchar() 的情况下使用了 $_POST['name'] 。我在文本框中输入了文本:,名称为“name”并提交了页面。该页面被重定向到自身。视图源处理页面显示了两个脚本:1)输入类型文本的值 2)添加到正文的脚本。我很困惑浏览器正在执行哪个脚本。
  • @YogeshKumar 哦,好吧。为了解释 robertpnl 的建议,在这种情况下,您所做的是在警报文本中引入更改,这样您就可以确定哪个已被解雇,例如 $_POST['name'].'-1' 用于第一个,$_POST['name'].'-2' 用于第二个
猜你喜欢
  • 2017-04-04
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 2021-07-31
相关资源
最近更新 更多