【发布时间】:2016-02-09 01:22:31
【问题描述】:
标准报告列与设置为显示为文本(转义特殊字符)的有什么区别?如何确保标准报告列中显示的数据是安全的?
【问题讨论】:
标签: oracle-apex
标准报告列与设置为显示为文本(转义特殊字符)的有什么区别?如何确保标准报告列中显示的数据是安全的?
【问题讨论】:
标签: oracle-apex
标准报告列不会转义特殊字符。因此,如果列中的数据包含像 <script>alert('hello');</script> 这样的 HTML,那么标准报告列将导致出现浏览器警报,显示“你好”,而显示为文本列只会显示文本 <script>alert('hello');</script>。
您应该只在 需要 列来呈现一些 HTML(而不是将其显示为文本)时使用标准报告列 - 例如,在报告中显示图像或输入字段等。在这些情况下,您需要确保您可以控制该列中显示的数据 - 您通常会这样做。如果用户将列中出现的任何数据输入到数据库中,那么您需要确保它不包含任何特殊内容 - 例如使用htf.escape() 函数使其安全。
【讨论】: