小编AFR*_*FRC的帖子

当field = 0时,mySQL返回所有行

我正在进行一些测试,当我查询表时,这是一个惊喜,查询SELECT * FROM table WHERE email=0返回表中的所有行.

此表没有"0"值,并且填充了常规电子邮件.

为什么会这样?这可能导致严重的安全问题.

有没有办法在不修改查询的情况下避免这种情况?

我错过了什么吗?

谢谢.

mysql select where-clause

18
推荐指数
2
解决办法
9052
查看次数

使用Amazon SES的Codeigniter SMTP电子邮件

我想昨天亚马逊宣布对SES(简单电子邮件服务)的SMTP支持.

我试图用Codeigniter发送SMTP电子邮件但没有运气.

我有一个经过验证的发件人,一切都很好看:

$this->load->library('email');

$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com',
    'smtp_user' => 'SMTP USERNAME',
    'smtp_pass' => 'SMTP PASSWORD',
    'smtp_port' => 465,
    'mailtype' => 'html'
);

$this->email->initialize($config);
$this->email->print_debugger();

$this->email->from('verified_email_address@something.com', 'Test From');
$this->email->to('email@example.com', 'Test To');
$this->email->subject('Test');
$this->email->message('test');

$this->email->send();
Run Code Online (Sandbox Code Playgroud)

我尝试了下面的smtp_host:

  • email-smtp.us-east-1.amazonaws.com
  • TLS://email-smtp.us-east-1.amazonaws.com
  • SSL://email-smtp.us-east-1.amazonaws.com

当我回显print_debugger()时,我得到:

220 email-smtp.amazonaws.com ESMTP SimpleEmailService-194655181
hello: 421 Timeout waiting for data from client.
Run Code Online (Sandbox Code Playgroud)

这些测试在mediatemple(gs)服务器上运行.

smtp codeigniter amazon-web-services amazon-ses

18
推荐指数
3
解决办法
2万
查看次数

从php脚本运行git pull

我正在使用Git,GitHub和SSH尝试Perfect Workflow,除了git pull从php 运行命令外,我已经完成了所有设置.

当我跑exec('git pull')我得到:

无法创建目录'/.ssh'.主机密钥验证失败.致命:远程端意外挂断

如果我在终端中运行它(作为root)它工作正常,但我需要这个钩子工作从Post-Receive URL(Github).

如果exec('whoami')我得到了apache.

这是来自medosmple与CentOS的(dv).

php linux git permissions ssh

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

Codeigniter:Paypal IPN和csrf_protection

我正在使用codeigniter-paypal-ipn并启用了csrf_protection.这似乎阻止了从Paypal到我的IPN控制器的访问.如果我禁用csrf_protection它工作正常,启用csrf_protection,paypal IPN服务会抛出500内部服务器错误.

有没有办法在不禁用csrf_protection的情况下解决这个问题?如果没有,我可以为该控制器禁用csrf_protection吗?

谢谢.

codeigniter paypal paypal-ipn codeigniter-2

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

Elastic Beanstalk上的持久存储

如何在Elastic Beanstalk上附加持久存储?

我知道我需要一个.config文件,其中我设置每次创建实例时运行的环境参数.

我的目标是拥有一个卷,比方说100GB,即使实例被删除/终止,我也有这个卷,其中包含所有实例都可以访问的持久数据.

我可以使用S3来存储这些数据,但它需要更改应用程序,并且延迟可能是个问题.

这样我可以像任何常见的服务器一样访问文件系统.

persistent-storage amazon-web-services amazon-elastic-beanstalk

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

没有有效OAuth重定向URI的Facebook登录

这与通配符域无关。这是关于在Facebook登录名上将完全不同的域添加到有效OAuth重定向URI的需要。

我们有一个Web应用程序,客户可以在其中设置自己的自定义域(example.com,xyz.net等)。我们不知道将使用哪些域。

在Facebook上,我们只有一个应用程序可以处理Facebook登录。似乎我们需要将使用FB登录的每个域明确列入白名单。

不能手动添加域。我们有什么选择?

谢谢。

facebook oauth facebook-graph-api facebook-login

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

Codeigniter将params传递给函数

我是OOP的新手,我在理解它背后的结构方面遇到了一些麻烦.我在Codeigniter(模板)中创建了一个库,我在加载时传递了一些参数,但我想将这些参数传递给库的函数.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Template {

    public function __construct($params)
    {
        echo '<pre>'; print_r($params); echo '</pre>';
        //these are the parameters I need. I've printed them and everything seems fine
    }

    public function some_function()
    {
        //I need the above parameters here
    }

}
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

如何指示predis继续发生错误

如果Redis失败,是否可以指示php predis(https://github.com/nrk/predis)继续并且不死?

我有Redis来处理应用程序缓存,但是应用程序可以在没有缓存的情况下运行,这只会使数据库更重。我更喜欢回退到数据库,然后使应用程序终止。我找不到指示predis继续失败的方法。

我以为将连接限制设置为大约5秒,如果它无法连接到Redis,则应用程序应该继续运行。

这可能吗?

Fatal error: Uncaught Predis\Connection\ConnectionException: Operation timed out [tcp://128.0.0.1:6379]
Run Code Online (Sandbox Code Playgroud)

php redis predis

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

亚马逊 SES:双点

我在 Amazon SES 上遇到一些奇怪的行为。我有一个使用 SES 发送 html 电子邮件的网络应用程序,最近我注意到有些图像在收到电子邮件后无法加载。

图像存储在 S3 中。

经过检查,我注意到在某些情况下图像的 url 正在被修改。举个例子:图片的 url 是http://example.com/image_name.png,发送邮件后图片的 URL 就变成了http://example.com/image_name..png(注意前面的双点扩展名)。

如果我向 gmail 和 hotmail 发送相同的电子邮件,我会遇到此问题,但图像不同。Gmail 将双点放在 image_2.png 中,hotmail 将其放在 image_1.png 中。

我使用 Codeigniter 电子邮件类通过 SMTP 发送电子邮件。

smtp codeigniter amazon-ses

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

predis SCAN 比 KEYS 慢

我需要一种方法来按前缀获取所有键以删除它们。

\n

我读过有关 KEYS 不适合生产的信息,因此我做了一些测试来检查性能。我使用 predis 1.1.6 (php),并在本地计算机和使用 elasticache redis 的测试 AWS 环境中进行了测试。我在一个包含大约 300k 项目的节点上执行此操作。

\n

我使用前缀:CLIENT/ID_CLIENT/MODULE:HASH翻译为client/9999/products:452a269b82c199ef27f5a299e3b0f98531216ccf

\n

因此,我需要搜索并删除客户端和模块中的所有密钥。\n由于我使用前缀,因此我设置了正确的前缀并使用了 predis 密钥方法:

\n
$this->_redisPrefix('client/9999/products:');\n$keys = $this->_redis_client->keys('*');\n
Run Code Online (Sandbox Code Playgroud)\n

这个速度非常快,大约需要 50ms。

\n

由于在生产中不建议使用 KEYS,因此我尝试使用 SCAN 来实现相同的目的。\npredis 没有扫描方法,因此我需要这样做:

\n
foreach (new Iterator\\Keyspace($this->_redis_client, 'client/9999/products:*') as $key) {\n    $keys[] = $key;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这会返回完全相同的结果,但花费了 20 秒(!)。我认为这与我的本地计算机有关,但 i\xe2\x80\x99 已将其部署到我们的 aws 环境中,并且响应时间是相同的。我没有使用分页,因为我需要删除所有项目,但我不知道有多少。可以是 10 个,也可以是 1000 个(或更多)

\n

我想避免使用 KEYS,但我不能在这种计时中使用 SCAN。

\n

php redis predis

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