我有一个表单,在发布表单时将字符串发送到我的Flask应用程序.字符串是一个文件路径,所以我想确保它不包含任何令人讨厌的东西,比如../../../etc/passwd.Flask使用的Werkzeug有一个方便的功能secure_filename,可以从文件名中删除令人讨厌的东西.不幸的是,当输入一个完整的路径时templates/example.html,它将转换/为_,所以我们最终得到templates_example.html.
那么,将路径分割成级别似乎是明智的,所以我分别发送templates并example.html在服务器上再次将它们连接在一起.这很有效,除了路径可以任意深度.我可以串起来dir1/dir2/dir3/dir4,希望没有人比我更深入dir4,但这似乎是愚蠢的.
处理未知深度路径验证的正确方法是什么?验证方式不同?以不同方式发送数据?以不同方式编码路径,然后在服务器上解码它?
我之前见过嵌入式开发板有一个像心跳一样闪烁的 LED,表明该开发板仍在执行代码。我想在我正在开发的嵌入式 Linux 板上做类似的事情。鉴于这是一段相当微不足道的代码,在我看来,有人可能已经为 Linux 编写了一个守护进程来执行此操作,但我还没有找到任何证据。
请注意,OS X Server 的 heartbeatd 和高可用性 Linux心跳守护进程并不是我想要的——它们都通过 IP 网络或类似的网络来协调系统可用性。
假设我正在寻找的东西不存在,我也对有关如何编写一个守护进程来切换引脚同时最大限度地减少资源使用的建议感兴趣。在什么更新率下,cron 会变成一个愚蠢的想法?
(我也不想听到人们滔滔不绝地谈论正在睡觉的 MacBook Pro 上的 LED,如果这出于某种原因似乎相关的话。)
谢谢。
我正在构建一个温控器,可以从谷歌日历中提取目标温度.在这样做时,我需要确定现在在Google日历中发生的事件.目前,我从Google获取.ics文件,然后使用Python icalendar库解析它.
然后我遍历日历中的每个事件并测试:
在检查每个事件(假设没有重叠事件)之后,我得到一个事件,其中所有三个问题的答案都是"是".这是当前的事件.
有一个更好的方法吗?特别是,有没有办法避免迭代日历中的每个事件?