簡體   English   中英

什么時候適合轉義html實體?

[英]When is it appropriate to escape html entities?

在我的服務器端應用程序中,每個輸出都通過htmlentities函數傳遞。 這樣,我可以確保我的應用程序是xss安全的。

但是,為什么輸入不能正確顯示htmlentities? 例如,這行代碼:

  <input class="form-control" placeholder="name"    id="name" />
name.value = '&lt;script&gt;'

注意: &lt;script&gt; = htmlentities("<script>"); &lt;script&gt; = htmlentities("<script>");

此代碼顯示單詞&lt;script&gt; 酒吧內。 但我希望看到<script> 對 ?

錯誤。 htmlentities()完成將字符轉換為HTML實體的工作。

請看以下示例,自己看看。

<input type="text" value="<?php echo htmlentities("<script>"); ?>" />
<input class="form-control" placeholder="name"    id="name" />
<input class="form-control" placeholder="name"    id="address" />
<script type="text/javascript">
    document.getElementById("name").value = "<?php echo htmlentities("<script>"); ?>".replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
    document.getElementById("address").value = "<?php echo htmlentities("<script>"); ?>";
</script>

不同之處在於您使用的是javascript更新html元素的值,而javascript只是將轉義的值放在框上。 關鍵是您必須取消轉義的轉義實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM