PHP数据库-不希望显示javascript代码
PHP databases - don't want to show javascript code
我对PHP和JavaScript/CSS有问题。
我有数据库表。这张表有物品的说明。我想从数据库中复制文章的描述。不幸的是,其中许多都包含JavaScript或CSS(然后是一些文章文本),所以当我使用echo时,它会显示所有代码(以及该文本之后)。有没有办法不显示JavaScript/CSS部分,只显示文本?例如使用str_replace和正则表达式?如果有,谁能告诉我应该是什么样子?
谢谢你的帮助,如果你需要更多的信息(代码等)请告诉我
使用HTMLPurifier -它会从你的文章中删除脚本,css和任何有害的内容。由于这是一个cpu密集型操作,因此最好在将文章保存到数据库之前通过HTMLPurifer运行文章,然后在每次显示文章时运行它。
如果您试图从用户的帖子中删除标签,您可以调用strip_tags
。这将摆脱css链接,脚本标签等。它不会摆脱style
属性,但如果你摆脱了div
, span
, p
等,那就没关系了——它将没有标签驻留。
正如其他人所说的那样,通常最好对输入(来自用户的数据在进入DB之前)进行消毒,而不是对输出进行消毒。
如果你只是想对用户隐藏JS和CSS,你可以使用Packer对不太懂行的用户混淆Javascript,使用Packer和base 62编码。JS仍然可以工作,但看起来像jiberish。请注意,更有知识的用户可以尝试消除代码的混淆,因此JS中的任何关键安全风险仍然存在。不要认为任何直接访问数据库的JS都是安全的;相反,为了安全起见,从Javascript中删除数据库访问。如果JS只是做一些花哨的事情,比如在页面上移动元素,那么可能只是混淆它是可以的。
只有当你完全控制和了解文章中包含的所有JS时才考虑这样做。如果这是你的匿名或其他不受120%信任的用户可以上传的东西,你需要杀死该功能并使用HTML净化器删除他们可能添加的任何JS。对于你或你的用户来说,输出用户输入的JS是不安全的。
对于CSS,我不确定你为什么要隐藏它,CSS不能像JS那样混淆;样式仍然是简单的英语,你能做的最好的是删除类/id名称和空白;输出你生成的CSS并不存在真正的安全风险,即使有人对它进行逆向工程,我也不会那么害怕。
同样,如果这是匿名/不受信任的用户可以自己添加到您的网站上的东西,那么您根本不希望这样做,所以使用HTML净化器删除上载CSS的能力。
您可以尝试下面的正则表达式来删除脚本和css:
"<script['d'D]*?>['d'D]*?</script>"
"<style['d'D]*?>['d'D]*?</style>"
它应该有帮助,但它不能删除所有的脚本。如onclick = " javascript:警报(1)"。
- 如果函数返回True,则显示Javascript按钮
- 背景图像前显示Javascript警报
- 为我的rails应用程序显示javascript弹出消息
- 如何在Javascript中显示Javascript变量
- 如何在colorbox中显示JavaScript变量
- Xamarin iOS WKWebView显示JavaScript警报
- GoogleMapsV3api只显示Javascript循环中的一些标记
- 如何在Asp.net标签控件中显示Javascript函数值
- 如何在对话框中显示javascript变量
- 在asp.net页面中显示javascript执行过程中的加载图标
- 在html中显示javascript变量won'不起作用
- 如何使用按钮在对话框上显示 Javascript 函数的结果
- 打开新窗口进行打印时不显示 JavaScript 图像
- 显示javascript控制台中的消息
- 在加载html网页时显示JavaScript表
- 在Notepad++中更好地突出显示Javascript语法
- 通过php显示javascript内容
- 文本字段未显示javascript函数中的变量
- 显示Javascript表单验证消息
- VB.NET-WebBrowser没有't在html源代码中显示javascript创建的html元素