小编gpw*_*pwr的帖子

Perl中Web控制面板登录的唯一Web浏览器标识ID

Web浏览器是否具有可以传递给Perl脚本的唯一ID?(就像您在商店购买的独特系列产品一样)

例如:如果我安装了Web浏览器,此Web浏览器是否可以为PHP或Perl脚本提供唯一的标识ID?

我正在寻找独特的东西的原因是做以下事情:

  1. 我有一个用户名和密码的用户数据库.

  2. 用户名/密码被加密并设置为用户的Web浏览器的cookie,以便用户可以登录和注销我的Web应用程序.(登录时加载的每个网页都会查看cookie并在cookie用户/传递正确时授予访问权限)

  3. 如果黑客设法从用户​​窃取加密的用户名和密码cookie,他将能够使用该被盗的加密详细信息登录.

如果用户的浏览器都有唯一的ID传递,那么每次用户使用加密的用户/传递cookie时,我都可以记录这些ID并匹配它们.这样,如果唯一ID不匹配(先前已记录的内容),则用户将被注销并要求再次手动登录.

如果加密的用户/通行证被盗,黑客将无法使用它,因为唯一的浏览器ID将不匹配.用户/密码cookie已加密,黑客无法看到用户名或密码.当唯一的浏览器记录的ID与Web应用程序不匹配时,将要求用户手动登录,黑客将无法手动登录,因为他偷走的用户/通行证已加密.


使用IP地址是一种可能的解决方案,但是解决方案很差,因为许多(如果不是大多数)ISP将动态IP分配给其客户端的Internet连接.

使用时间也不是一个好的解决方案,因为我希望用户一次可以在同一台计算机上登录数周(如果他们选择的话),以方便使用.


有人对上述情况有任何解决方案吗?

我一直在寻找一种从浏览器中获取独特功能的方法,但这似乎不太可能.有可能吗?

authentication encryption cookies perl

15
推荐指数
3
解决办法
4万
查看次数

Sqlite无法使用Mojolicious和Par Packer找到DB文件

我正在用Perl编写一个使用Mojolicious和Sqlite的程序.我将使用Par Packer将其作为.exe文件分发,以便在其他Windows机器上进行部署.

我在Windows上使用Strawberry Perl进行开发.

我使用以下Windows批处理文件与Par Packer生成.exe文件:

pp -o hallo.exe ^
    -x ^
    -l libeay32__.dll ^
    -l zlib1__.dll ^
    -l ssleay32__.dll ^
    -a lib ^
    -a public ^
    -a templates ^
    -a "C:\strawberry\perl\site\lib\Mojo\entities.txt;Mojo\entities.txt" ^
    -a "C:\Strawberry\perl\vendor\lib\Mojolicious\resources\public;Mojolicious\public" ^
    -a "C:\Strawberry\perl\vendor\lib\Mojolicious\resources\templates;Mojolicious\templates" ^
    -a "D:\Perl\main.db" ^
    hallo.cgi
Run Code Online (Sandbox Code Playgroud)

以上工作完美但但是一旦我引入SQLite,我在尝试运行hello.exe时遇到以下错误:DBD :: SQLite :: db prepare failed:no such table:libraries

hallo.cgi正常运行时工作正常.以perl hallo.cgi为例.但是当所有内容都编译成.exe文件时,会发生Sqlite错误.

这里发生的是main.db(一个SQL lite数据库文件)与hallo.cgi(或hallo.exe)位于同一位置,但是当我运行hallo.exe时,SQLite找不到main.db,从而创建了一个main.db在它自己,但因为它自己创建它,数据库中没有数据,因为它找不到库表.

我该如何解决这个问题?

在我用于编译的上面的批处理文件中,我为Par Packer包含了main.db,但它似乎完全忽略了该行:

-a "D:\Perl\main.db" ^
Run Code Online (Sandbox Code Playgroud)

更新:我似乎通过查看$ ENV {PWD}来解决这个问题.($ ENV {PWD}表示工作目录)并使用chdir更改为它.进入后,SQlite能够获取文件并正常工作.请注意,在我的源代码中,我的操作包括Par packer所需的库和模块,这些库和模块创建了工作目录更改的情况.将其更改为原始工作目录解决了这个问题.

sqlite perl mojolicious

5
推荐指数
1
解决办法
165
查看次数

在哪里可以获得适用于 Android 的 Chrome 中的字体

目前,我在我的网站上使用了适用于 Windows 版 Chrome 的字体,但这些字体不适用于 Android 版 Chrome。

我想使用的字体是HaettenschweilerImpact,但 Android 版 Chrome 浏览器没有这些字体。而是显示纯Arial字体。

为了解决这个问题,最好找出 Chrome for Android 支持哪些字体并从那里获取一些东西。我无法找到有关 Chrome 支持哪些字体的任何信息。Android 版 Chrome 支持哪些字体?

html css android google-chrome font-family

3
推荐指数
1
解决办法
2988
查看次数