如何通过URL发布HTML

时间:2014-07-24 12:14:00

标签: php html url

是否可以通过网址发送html代码并将包含html代码的参数显示为接收参数的HTML?

即。 <a href='./displayHtml.php?description=<strong>Title</strong><table>...</table>'>Send Html</a>

2 个答案:

答案 0 :(得分:3)

没有任何内容(默认情况下,XSS过滤器可能不喜欢它)阻止您在URL中包含具有特殊含义的字符。但是:

  • 您无法通过链接发出POST请求,数据将在$_GET
  • 中显示(在PHP中)
  • 您应该在将数据放入网址之前对其进行urlencode
  • 您应该在将数据放入HTML之前对其进行HTML编码

这样:

<?php
    $description = htmlspecialchars(
        urlencode(
            "<strong>Title</strong>etc etc"
        )
    );
?>
<a href="./displayHtml.php?description=<?=$description?>">

确保在将用户输入(例如,从$_GET读取的任何内容)注入HTML文档之前,实施适当的XSS攻击防御。

答案 1 :(得分:1)

嗯 - 你可以做到这一点 - 但这将是非常危险的

<强> displayHtml.php

<?php
    echo $_SERVER["QUERY_STRING"]

正如@Quentin指出的那样 - 存在各种XSS /安全问题。

编辑:这可能稍微更安全:

<?php
    echo htmlentities($_SERVER["QUERY_STRING"]);