【问题标题】:How to rewrite url filename with random number using .htaccess如何使用 .htaccess 用随机数重写 url 文件名
【发布时间】:2017-05-31 22:45:28
【问题描述】:

大家好,

我正在开发一个电子金融系统,用于处理我所在组织的所有财务活动。在开发这样的系统时,应该实施许多安全措施。因此,我尝试使用 .htaccess 来保护我的 文件名、文件扩展名等

对于文件扩展名,我尝试了这些表达式并为我工作。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

我想问一下是否有任何方法可以将文件名更改为 随机 数字来表示文件名并将该数字作为临时会话,当浏览器关闭并重新创建时该数字将更改重新打开时是一个新的。

我没有尝试任何东西,因此正在寻找继续尝试的线索。

【问题讨论】:

  • 为什么不使用 HTTPS、基于角色的访问控制系统和 IP 地址访问限制来保护整个系统?如果有人知道/猜到,您正在尝试的内容不会阻止通过直接 URL 访问 actual 文件。
  • 听起来像是默默无闻的安全。 不要依赖它! (stackoverflow.com/questions/533965/…) 你的问题:我不认为 mod_rewrite 可以处理会话。但如果您将任何对您网站的请求重定向到 php 脚本,则 php 脚本可以读取会话并确定该请求的预期操作。
  • 您是否尝试实现仅对会话有效的 URL(有效地单次使用)?此时用户是否已经通过身份验证?
  • @CD001 我很清楚你的意思,我已经安装了 SSL 来实现你建议的 HTTPS,只是想通过将文件名动态更改为随机数并删除 .php/ 来使其足够散列.aspx/etc 扩展名。
  • @Fabian,不一定要处理会话的工作,而是为我生成一个随机数或一次创建一个唯一的数字,并且该数字应该不同于每个其他用户自己的数字。类似的东西

标签: javascript php jquery ajax .htaccess


【解决方案1】:

您可以创建一个 filegetter.php 文件,该文件接收基于会话 ID、IP、时间等加密文件名...并使用解密文件创建一个 php include_once名字。

对于 .htaccess,您可以这样做

RewriteRule ^(\w+)(.php)$ filegetter.php?filekey=$1 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2013-04-22
    • 2017-04-08
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多