[英]When is it appropriate to escape html entities?
在我的服務器端應用程序中,每個輸出都通過htmlentities函數傳遞。 這樣,我可以確保我的應用程序是xss安全的。
但是,為什么輸入不能正確顯示htmlentities? 例如,這行代碼:
<input class="form-control" placeholder="name" id="name" />
name.value = '<script>'
注意: <script> = htmlentities("<script>");
<script> = htmlentities("<script>");
此代碼顯示單詞<script>
酒吧內。 但我希望看到<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(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
document.getElementById("address").value = "<?php echo htmlentities("<script>"); ?>";
</script>
不同之處在於您使用的是javascript更新html元素的值,而javascript只是將轉義的值放在框上。 關鍵是您必須取消轉義的轉義實體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.