请仔细阅读,希望你能帮助我完成我的范例;)
基本版,像薄荷一样 - - -
我有一个php + gd脚本,可以生成给定文本的图像,如下所示:
[img src =“renderImage.php?text = John Doe”alt =“Jonn Doe”/]
输出是在其上显示预先格式化文字的图像。我们说12px arial#000000
然后我将apache mod_rewrite添加到等式中,以便服务器尝试访问缓存的图像,以及它是否不存在,通过php脚本生成它以生成它(并保存为¨John.png ¨):
[img src =“/ images / cached / John Doe 2”alt =“John Doe 2”/] < - 这可以虚拟地转换为 - > [img src =“renderImage.php?text = John Doe”alt =“Jonn Doe”/]
现在,高级版本 - - -
问题有两个:
1.-使用更加可自定义的api修改php脚本:
[img src =“renderImage.php?text = John Doe& size = 36& font = verdana& color = FFFFFF”alt =“Jonn Doe”/]
2.-由于我们使用'text'占位符的摘录保存图像(例如renderImage.php?text = John Doe as John.png),当我们获得具有类似'text'占位符的图像时,我们可以获得类似的文件名,例如:
[img src =“renderImage.php?text = John Doe& size = 36& font = verdana& color = FFFFFF”alt =“Jonn Doe”/]
[img src =“renderImage.php?text = John Doe在这里!size = 24& font = tahoma& color = 333333”alt =“Jonn Doe”/]
两者都将保存为John.png!
* 最后,范例 - - - *
我该如何解决这个问题?我已经找到了一个解决方案:将图像保存在php中,使用特定的加密类名称,如下所示:
Pepe pecas | 31/12/2010 | 9:57 | 72 / arial / FFFFFF.png
或
Pepe pecas | 31122010 | 9:57 | 72arialFFFFFF.png
然后在标记中访问它们:
* [img src =“/ images / cached / JohnDoe_24arial333333.png”alt =“John Doe”/] *
将使用mod_rewrite正则表达式将apache转换为:
[img src =“renderImage.php?text = John Doe& size = 24& font = arial& color = 333333”alt =“Jonn Doe”/]
你在想什么?
答案 0 :(得分:2)
为什么不对整个查询字符串执行MD5哈希并将图像命名为。这将是一种相当简单的方法来查看该组合是否存在。
答案 1 :(得分:0)
如果您允许完全任意组合,那么您将浪费大量磁盘空间缓存图像。什么是阻止恶意用户循环遍历所有40亿个可能的颜色代码,字体大小1-200,以及多少字体?这个“一个”图像最终将在您的驱动器上拥有800多亿个图像。
特别是如果这是一个面向公众的页面。写一个蜘蛛来击中所有可能的组合是微不足道的。在用户带宽成本最低的情况下,它们会耗尽您的磁盘空间并使您的CPU挂起,从而产生无用的图像。
答案 2 :(得分:-1)
@Marc B,我打算用它来生成标题[h1] [/ h1]
@niggles,这可以工作,我还会将文本属性添加到哈希计算中,以使文本更加独特。
那么从用户的直接执行中隐藏脚本呢?