标签: secure-scl

仅为安全页面保护回形针网址

我正在努力找到使回形针网址安全的最佳方法,但仅限于安全页面.

例如,显示存储在S3中的图像的主页是http://mydomain.com,图像URL是http://s3.amazonaws.com/mydomainphotos/89/thisimage.JPG?1284314856.

我有像https://mydomain.com/users/my_stuff/49这样的安全页面,其中的图像存储在S3中,但S3协议是http而不是https,因此用户会从浏览器收到一条警告,说明某些元素在页面不安全,等等等等.

我知道我可以在模型中指定:s3_protocol,但这使得一切都安全,即使没有必要.所以,我正在寻找将协议更改为https的最佳方法,仅用于安全页面.

一种(可能是坏的)方法是创建一个新的url方法,如:

def custom_url(style = default_style, ssl = false)
  ssl ? self.url(style).gsub('http', 'https') : self.url(style)
end
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是,我正在使用ssl_requirement插件,因此可能有一种方法可以将其与之相关联.

我确信有一些简单,标准的方法可以做到这一点,我忽略了,但我似乎无法找到它.

https ruby-on-rails paperclip secure-scl

11
推荐指数
2
解决办法
4609
查看次数

<iostream> 和 #define __STDC_WANT_SECURE_LIB__ 0 导致错误 C2039:'sprintf_s'

在构建这个非常简单的测试程序时

#include <iostream>
int main() {
    std::cout << "x";
}
Run Code Online (Sandbox Code Playgroud)

使用 Visual Studio 2019,/Wall我得到了

warning C4668: '__STDC_WANT_SECURE_LIB__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
Run Code Online (Sandbox Code Playgroud)

尝试去

#define __STDC_WANT_SECURE_LIB__ 0
Run Code Online (Sandbox Code Playgroud)

在包含 iostream 结果之前

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xlocnum(1388,69): error C2039: 'sprintf_s': is not a member of '`global namespace''
Run Code Online (Sandbox Code Playgroud)

至少对于我的VS来说是这样。戈德博尔特没有抱怨

#define __STDC_WANT_SECURE_LIB__ 1
Run Code Online (Sandbox Code Playgroud)

很好,不会让编译器抱怨人们所期望的 sprintf_s 。

搜索时微软没有向我显示任何结果。这里也是如此,但总的来说,我找不到很多关于是否以及如何使用该定义的资源。

有没有办法禁用安全扩展并包含<iostream>?我是否使用了错误的定义或方法?

visual-c++ secure-scl visual-studio-2019

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