小编Jer*_*ams的帖子

如何保护Amazon SimpleDB免受SQL注入?

根据"如果它像鸭子走路,它听起来像鸭子"的原则,亚马逊的SimpleDB支持的SQL风格的查询似乎应该容易受到SQL注入式攻击.这是一个简单的例子,假设攻击者的输入进入变量$ category,并且他可以猜测列名:

$category = "Clothes' OR Category LIKE '%";
$results = $sdb->select("SELECT * FROM `{$domain}` WHERE Category = '$category'");
Run Code Online (Sandbox Code Playgroud)

如果您正在玩主游戏,这些行可以是html-sdb_create_domain_data.php亚马逊PHP SDK(1.2)示例代码中文件第119行的原位替换.

亚马逊发布了引用规则,我想我可以编写一些东西来确保用户输入中的任何"或"被加倍......但我一直都知道转义基本上是一场军备竞赛,这使得参数化成为我选择的武器.例如,使用MySQL.

其他人用来保护SimpleDB查询的是什么?

sql-injection amazon-simpledb

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

在JavaScript中讲述正则表达式解析异常

我正在编写一个允许用户指定正则表达式的应用程序.当然,用户会犯错误,因此我需要一种方法来处理不可解析的正则表达式,并为用户提供有关如何解决问题的可操作建议.

我遇到的问题是抛出的异常new RegExp("something awful")对regex n00bs没有帮助,并且每个浏览器都有不同的消息.例如:

鉴于:

try{
    new RegExp("(pie");
}catch(e){
    console.log(e.message);
}
Run Code Online (Sandbox Code Playgroud)
  • Firefox抛出"未终结的括号".
  • Safari抛出"失踪")
  • Chrome抛出"未终止组"

如果这些消息字符串是用户语言本地化的,或者它们随着时间的推移而漂移,那么这对我来说并不会让我感到惊讶,这使得这是一个疯狂的结,用exception.message解开.

我的目标是捕捉异常,弄清楚它的真正含义,并提出一个更适合初学者的消息.(最后突出显示了无与伦比的paren,在这个例子中.)

我应该使用其他一些异常标识符吗?有没有更好的方法来分辨这些?如果没有这一切,有没有人只是收集了几个最流行的浏览器中所有这些字符串的内容?

javascript regex

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

有人使用Lisp作为MySQL回复的网络应用程序吗?

我一直听说Lisp是一种非常有效的语言,而且我很享受SICP.尽管如此,我仍然缺少一些有用的东西,可以让我在Web应用程序中替换PHP用于服务器端数据库交互.

是否有类似PHP的PDO库,用于Lisp或Arc或Scheme或其中一种方言?

lisp mysql database

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

PHP PDO对象如何确定它是否已经存在于MySQL事务中?

我有两个复杂的PHP对象,每个对象都有几个MySQL表中的数据.

有时,我只需要从数据库中删除一个对象A,这需要3个SQL语句.

有时,我需要从数据库中删除一个对象B,这需要4个SQL语句,并且需要查找和删除对象B拥有的所有对象A.

所以在函数delete_A()中,我在一个事务中执行那些语句.在delete_B()函数内部,我想运行一个覆盖delete_A()内部活动的大型事务.如果删除B的整个原子都失败了,我需要在回滚中恢复它的所有A.

如果尚未运行更大的事务,如何更新delete_A()的定义以仅打开新事务.

我希望能够做这样的事情,但该autocommit属性似乎没有被改变beginTransaction()

function delete_A($a){
  global $pdo;
  $already_in_transaction = !$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);
  if(!$already_in_transaction){
    $pdo->beginTransaction();
  }

  //Delete the A

  if(!$already_in_transaction){
    $pdo->commit();
  }
}
function delete_B($b){
  global $pdo;
  $pdo->beginTransaction();
  foreach($list_of_As as $a){
    delete_A($a);
  }
  $pdo->commit();
}
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

6
推荐指数
2
解决办法
2144
查看次数

使用YUI3和HTTPS的"正确"方法是什么?

我对YUI2有很多经验,我正在加快YUI3的速度.我正在编写的服务需要HTTPS,但是香草YUI体验来自雅虎仅支持HTTP的CDN,当Chrome浏览器试图将HTTPS页面与HTTP javascript混合时,它在Chrome中悄然失败并在现代IE中大声失败.

我的目标是获得所有:

  1. 网站使用HTTPS
  2. YUI适用于Chrome和IE(因此脚本也必须通过SSL提供)
  3. 使用YUI 3的现代版本(这取消了YUI PHP Loader的资格,该版本尚未更新以支持甚至YUI 3.4,而3.8是"当前")
  4. 使用汇总组合来获取速度而不是许多JS和CSS文件(这会取消Google的CDN ...如果YUI 3实际上是在那里托管的,我找不到.)
  5. 站点动态加载YUI依赖项(当我添加功能时,依赖项会定期更改,返回配置程序并每次保存新的bundle都是PITA)

显而易见的解决方案似乎是放弃目标#5和自主机组合.

我怎样才能达到所有5个目标?

https yui

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

YUI自动完成在IE7中的其他页面元素下呈现

我现在正在一个页面上工作,该页面上有一列用性感的阴影和角落设置的方框,并使用这里的示例.我不得不承认,我并不完全理解CSS的工作原理,但它看起来很棒.

最顶部的框内是用于搜索的文本类型输入.该搜索框连接到YUI自动完成小部件.

在Mac上的Firefox3,Windows上的FF2,Mac上的Safari中,一切正常.在WinXP上的IE7中,自动填充建议在圆角盒子下方呈现,使得除了第一个之外的所有内容都不可读(尽管你仍然可以看到盒子之间有足够的窥视,我觉得IE7确实得到了不止一个建议).

我在哪里可以开始寻找纠正问题的方法?

以下是WinXP上FF2的成功:

替代文字

这是IE7中失败的样子:

替代文字

css yui z-index internet-explorer-7

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