小编zua*_*auz的帖子

SSL替代 - 使用JavaScript加密密码提交给PHP解密

我正在建立一个网站,我的付款方式将是Google Checkout和Paypal.将有链接/按钮将用户重定向到安全的Google/Paypal网站以处理付款.这意味着我不需要每年150美元的额外费用和为我的网站安装SSL证书的复杂性.

但是我想在登录时加密用户的密码,这样如果他们在网络上,一些运行FireSheep等的恶意人员在发送到服务器时无法读取用户的实际密码.该网站的其余部分不需要加密,因为它不是真正敏感的数据,可能会显着降低用户体验.

我的想法是,这可以通过公钥加密实现.让我们说这个过程是这样的:

  1. 公钥是在JavaScript外部文件中,服务器上的PHP中的私钥
  2. 用户在表单中输入用户名和密码,然后单击"提交"
  3. JavaScript运行并加密密码,并将其存储在文本字段中
  4. 表单提交给服务器,密码用PHP解密
  5. PHP中的纯文本密码被加盐和散列,然后与数据库中的散列进行比较.
  6. 注册/更改密码功能的可能类似过程.

我在想像RSA会做的事情.但我已经在网上寻找一个可以运行的JavaScript库,但似乎没有一个与可用的PHP库兼容.无论如何,它需要生成一组与JavaScript和PHP兼容的密钥.

有人知道这个实际工作的解决方案吗?如果不是我们写一个然后开源它.不幸的是,编写加密/解密代码非常复杂,因此我并不确切知道现有库正在做什么以及如何修改它们以使其工作.我已经有会话固定/劫持的保护,所以我对此不感兴趣.只是有兴趣在数据到达Web服务器之前对其进行加密.

注意:请不要将一堆链接发布到独立的Javascript或PHP加密库,我已经在Google上发现了这些链接.这实际上并没有用.我需要的是JavaScript加密和PHP解密的代码,它们实际上和谐地协同工作以产生上面概述的预期结果.

此外,如果你可以避免发布像"只使用SSL"这样的评论.我实际上想要解决这个确切的问题,即使这不是最佳实践,但它会很有趣.

非常感谢!

javascript php encryption ssl public-key-encryption

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

如何连接多个表,包括查找表并按行返回数据

我正在尝试显示一些简单的计算机游戏结果,并在我的代码中轻松地逐行遍历结果。我希望每场比赛的所有相关数据都在每条记录中,这样我就可以在一行中输出所有数据,例如:

  • A队45分)vs B队55分),游戏时长:5分钟
  • C队60分)对阵D队65分),比赛时长:4.3分钟

因此,对于一场比赛,有两支球队互相比赛,他们在比赛结束时各获得一个分数。本质上,每场比赛的 games_teams 表最终都有两行。

这是我的架构:

模式图片

这是我的表数据:

表数据图片

这是我试图实现的输出,以便我可以轻松地遍历结果并将它们输出到页面上:

所需的输出图片

我设法通过一些可怕的 SQL 和许多子查询来实现这一点:

SELECT games.game_id, game_name, game_duration, 
(SELECT team_id FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 0, 1) AS team_id_a,
(SELECT team_id FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 1, 1) AS team_id_b,
(SELECT teams.team_name FROM games_teams INNER JOIN teams ON games_teams.team_id = teams.team_id WHERE games.game_id = game_id LIMIT 0, 1) AS team_name_a, …
Run Code Online (Sandbox Code Playgroud)

mysql sql pivot-table lookup-tables jointable

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

如何更新表以添加主键并使用递增的ID更新所有现有行?

我有一个包含20,000行数据的表,但是我忘了在其上放一个主键,以便每行都有一个唯一的键.

我希望第一行从ID 1开始并一直递增到最后一行并在ID 20000处完成.如何使用单个查询更新所有行?

我正在使用MySQL.尝试过使用PhpMyAdmin,但它不会这样做.

mysql sql database indexing auto-increment

4
推荐指数
1
解决办法
1218
查看次数

无法使用密钥文件使用Fabric和SSH连接到远程服务器

我正在尝试使用Fabric python脚本登录到生产服务器,然后远程运行'ls'命令.好吧,我实际上还有许多其他命令可以运行,但是我开始使用一个简单的列表来实现它.我的生产服务器使用SSH并被锁定,因此需要私钥文件和密码.

现在我一直在阅读有关如何使其工作的一些网站,但由于某种原因无法登录.我认为它连接正常但是有消息说:

'root'的登录密码:

所以我输入了我的密码(与env.password中的密码相同),它只是不断弹出消息.

这是我的fabfile.py:

from fabric.api import *

env.use_ssh_config = True
env.hosts = ["myserver.net"]
env.user = "root"
env.key_filename = "/home/myusername/.ssh/id_rsa.ppk"
env.password = "mypassword"
env.port = 22

def testlive():
  run("ls")
Run Code Online (Sandbox Code Playgroud)

这是我在/home/myusername/.ssh/config中的SSH配置:

Host myserver
  hostname myserver.net
  port 22
  IdentityFile ~/.ssh/id_rsa.ppk
Run Code Online (Sandbox Code Playgroud)

关于如何使这个工作的任何想法?

非常感谢

python ssh fabric

4
推荐指数
1
解决办法
8866
查看次数

带有"拒绝所有人"的htaccess文件是否也拒绝了子目录?

如果我有这样的目录结构:

- index.php
- public
    - img
    - css
- application
    - controllers
        - user
        - admin
    - models
    - views
    .htaccess
Run Code Online (Sandbox Code Playgroud)

我使用index.php作为我的前端控制器,因此包含所有MVC类和文件,不需要目录访问.

在.htaccess Deny from all里面我有它,它位于应用程序目录中.这是否有效地拒绝直接文件访问和目录列表到应用程序目录下的所有子目录?或者我是否还需要将.htaccess文件放在每个子目录中?

非常感谢

apache .htaccess directory-structure subdirectory

2
推荐指数
1
解决办法
1488
查看次数

如何将标题属性添加到ASP.NET DropDownList的每个选项

我正在研究一个较旧的ASP.NET项目(而不是我认为的MVC),他们需要的一个功能是当项目悬停在下拉列表中的该项目时查看该项目的描述.这可以使用以下代码使用HTML并使用标题文本来完成:

<select>
    <option value="1" title="Option 1 Desc">Option 1</option>
    <option value="2" title="Option 2 Desc">Option 2</option>
    <option value="3" title="Option 3 Desc">Option 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

好的,我如何使用ASP.NET DropDownList控件执行此操作?我有以下代码:

<asp:DropDownList ID="DropDownListLocation" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownListLocation_OnSelectedIndexChanged" CssClass="editorFieldServerControl" ClientIDMode="Static"></asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

在"代码隐藏"页面中:

private void PopulateFacilityDropdown(List<FacilityAvailableByLocation> facilities, int? selectedID)
{
    DropDownListFacility.DataSource = facilities;
    DropDownListFacility.DataTextField = "FacilityName";
    DropDownListFacility.DataValueField = "FacilityID";
    DropDownListFacility.DataBind();            
    DropDownListFacility.Items.Insert(0, new System.Web.UI.WebControls.ListItem("", ""));                   

    if (selectedID.HasValue && selectedID.Value > 0)
        DropDownListFacility.SelectedIndex = facilities.FindIndex(b => b.FacilityID == selectedID.Value);
        else DropDownListFacility.SelectedIndex = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,设施列表中的每个设施都有ID,名称,描述的属性,我可以拿出来.我只是希望能够在每个<option>渲染时添加一个title属性并将描述放入其中.要么或者能够为每个<option>标签添加像'data-description'这样的自定义属性,那么我可以使用一些简单的jQuery将标题添加到每个选项标签中.

我想念你可以循环浏览列表并手动输出自定义下拉代码的日子.

有任何想法吗?非常感谢

asp.net html-select

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