小编Dom*_*mbe的帖子

“SenderID”在 Amazon SNS(官方 PHP SDK)上发送 SMS 的问题

出于某种原因,SenderID 似乎恢复为 NOTICE - 请参见此处 亚马逊 SNS - 短信通知 当我在代码中设置 SenderID 时。

当我不使用 SenderID 变量时,它会作为默认设置发送——这很好,但我们偶尔会为不同的用途更改名称。

我使用的是官方 PHP SDK,代码如下:

$aws_cred = array(
    'credentials' => array(
        'key' => 'GOT THE KEY',
        'secret' => 'GOT THE SECRET',
    ),
    'region' => 'eu-west-1', // < your aws from SNS Topic region
    'version' => 'latest'
    );
    $sns = new \Aws\Sns\SnsClient($aws_cred);

    $args = array(
    "SenderID" => "MySendID",
    "SMSType" => "Promotional",
    "Message" => "Amazon y u do dis??",
    "PhoneNumber" => "+number"
    );

    $result = $sns->publish($args);
Run Code Online (Sandbox Code Playgroud)

我要发送到英国(所以 SID 在那里工作),而且它在 11 个字符的限制内。

有谁知道为什么会这样?

干杯

php amazon-web-services amazon-sns

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

CORS保护:HTTP_ORIGIN的意义是什么

我目前正在为我们所有的域(scripts.domain.com)开发一个中央AJAX脚本库。

我有以下PHP代码,从理论上讲,它可以很好地防止CORS的错误请求。

$valid_cors = array("domain1","domain2","domain3");
if(in_array($_SERVER['HTTP_ORIGIN'],"https://".$valid_cors)) {
    header('Access-Control-Allow-Origin: https://{$valid_cors}', false);
    header("Access-Control-Allow-Methods: GET, POST, PUT");
    header("Access-Control-Allow-Headers: Content-Type");
}
Run Code Online (Sandbox Code Playgroud)

我敢打赌,您甚至可以在阅读之前就猜出我收到的消息。对于那些无法做到的人来说,这是以下几方面的事情:

XMLHttpRequest无法加载 https://scripts.domain.com/scripts/ajax_caller.json?。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问源“ https:// domain1 ”。

在阅读了这里的一些问题之后,据我了解,大多数浏览器甚至都没有发送HTTP_ORIGIN标头,因此,基本上整个ACAO系统都是毫无意义的,因为您必须将Allow-Origin标记为星号以允许多个域来调用它。您也不能放置多个AO标头,因为如果有多个AO标头,浏览器将完全阻止该请求。

到目前为止,我们都知道-不信任浏览器向您发送的任何内容,因为它很容易被伪造,那么为什么甚至认为它已经实现呢?

使用星号系统对我来说并不奇怪,因为我们会在调用任何动作文件之前检查CSRF和会话在执行时是否进行检查,但是对于大多数用户而言,这可能会带来更大的危害,而不是使它们陷入错误的安全感。 。

拜托,有人可以告诉我,我在这里用了错误的杆端并且我用错了吗?似乎没有多少人可以给答案栏加上星号,这使我更加相信这是唯一的方法。

javascript php ajax http-headers cors

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