gpt4 book ai didi

javascript - 如何保护网页的自定义用户输入代码?

转载 作者:行者123 更新时间:2023-11-27 23:38:19 30 4
gpt4 key购买 nike

我的网站上有一项功能,允许我的用户创建自定义“网页”。他们可以根据需要在其中添加 HTML 元素、CSS 和自定义 javascript 代码。

我计划用 TEXTMEDIUMTEXT 将整个网页(HTML、css、javascript、jquery)代码存储在 MySQL 数据中(除非你有更好的解决方案?)。我也在使用 PHP。

这是我插入代码的一部分:

$stmt = prepare("INSERT INTO webpages (content) VALUES (:content));
...

如何保护插入数据库的内容/网页代码,和/或在显示文本时保护文本?

部分检索代码如下:

$stmt = prepare("SELECT * FROM webpages WHERE id = :id");
...

谢谢

最佳答案

您可以存储编码/加密形式的 HTML。但这不是正确的方法。当您尝试将整个网页存储在数据库中时,它会增加数据库大小并降低性能。而且您还需要只允许安全的 html 标签。

如果您允许 javascript 并在您的同一域下加载存储的网页内容,例如 https://yoursite.com/storedsite-id-or-name 那里有一种可能性,用户可以通过使用 javascript 获取域的所有 cookie。

如果用户插入 PHP 代码,没有问题,因为在您运行代码之前 php 不会执行。如果您从数据库中获取 html 并显示为纯文本,它不会执行。

但在我看来。

您可以将这些冗长的 html 内容以 encodedencrypted 形式存储在文件中。并使用 unique hash 作为文件名。您也可以使用自定义扩展。

7815696ecbf1c96e6894b779456d330e.sitedata

并防止直接访问。并将站点信息存储在数据库中。

喜欢,

------------------------------------------------------------------
row_id | user_id | site_name | site_source
------------------------------------------------------------------
1 | 34 | sample-site | 7815696ecbf1c96e6894b779456d330e

然后就可以查看站点了,

https://yoursite.com/sample-site 当用户请求此 URL 时,您需要从中获取 site-name网址。并从数据库中获取站点源文件。然后读取文件内容,解码/解密为实际内容。然后您可以呈现包含内容的页面。

关于javascript - 如何保护网页的自定义用户输入代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57138828/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com