首页 \ 问答 \ 我在哪里可以买到有效的SSL证书?(Where could I buy a valid SSL certificate? [closed])

我在哪里可以买到有效的SSL证书?(Where could I buy a valid SSL certificate? [closed])

我需要有一个有效的SSL证书,有效的意思是不是自己签名。 我不希望我的客户必须处理'例外'。

它要多少钱? 我有点迷失,因为我检查了Verisign,它花费大约1000美元,而我可以从30 $找到其他人。

有任何想法吗? 顺便说一下,我现在在法国,如果这很重要。


I need to have a valid SSL certificate, by valid I mean not self signed. I don't want my customers to have to deal with the 'exception'.

How much does it cost? I'm bit lost because I checked on Verisign and it costs around ~1000$ while I can find others from 30$.

Any ideas? By the way I'm currently located in France, if that matters.


原文:https://stackoverflow.com/questions/8404907
更新时间:2022-02-19 18:02

最满意答案

你是对的:它是未定义的行为,你不能算它总是生成0

至于为什么在这种情况下您看到零:现代操作系统将内存分配给相对粗糙的块(称为页面)的进程,这些块大于单个变量(x86上至少为4KB)。 当您有一个单一的全局变量时,它将位于页面上的某个位置。 假设a类型为int[][]int s是系统上的四个字节, a[27][27]将从a开始位于大约500个字节。 所以只要a接近页面的开头,访问a[27][27]将被实际的内存支持,读取它不会导致页面错误/访问冲突。

当然,你不能指望这一点。 例如,如果a之前有其他全局变量的近4KB,则a[27][27]不会被内存支持,并且当您尝试读取它时,您的进程将崩溃。

即使进程没有崩溃,也不能指望获取值0 。 如果您在现代多用户操作系统上有一个非常简单的程序,除了分配此变量并打印该值之外,您可能会看到0 。 操作系统将存储器内容设置为一些良性值(通常为全零),将内存移交给进程,以便一个进程或用户的敏感数据不能泄漏到另一个进程。

但是,没有一般的保证,您读取的任意内存将为零。 你可以在内存没有初始化分配的平台上运行你的程序,你会看到最后一次使用中发生的任何值。

此外,如果a后面有足够的其他全局变量被初始化为非零值,那么访问a[27][27]会显示出任何值发生在那里。


You were right: it is undefined behavior and you cannot count it always producing 0.

As for why you are seeing zero in this case: modern operating systems allocate memory to processes in relatively coarse-grained chunks called pages that are much larger than individual variables (at least 4KB on x86). When you have a single global variable, it will be located somewhere on a page. Assuming a is of type int[][] and ints are four bytes on your system, a[27][27] will be located about 500 bytes from the beginning of a. So as long as a is near the beginning of the page, accessing a[27][27] will be backed by actual memory and reading it won't cause a page fault / access violation.

Of course, you cannot count on this. If, for example, a is preceded by nearly 4KB of other global variables then a[27][27] will not be backed by memory and your process will crash when you try to read it.

Even if the process does not crash, you cannot count on getting the value 0. If you have a very simple program on a modern multi-user operating system that does nothing but allocate this variable and print that value, you probably will see 0. Operating systems set memory contents to some benign value (usually all zeros) when handing over memory to a process so that sensitive data from one process or user cannot leak to another.

However, there is no general guarantee that arbitrary memory you read will be zero. You could run your program on a platform where memory isn't initialized on allocation, and you would see whatever value happened to be there from its last use.

Also, if a is followed by enough other global variables that are initialized to non-zero values then accessing a[27][27] would show you whatever value happens to be there.

相关问答

更多
  • 你是对的:它是未定义的行为,你不能算它总是生成0 。 至于为什么在这种情况下您看到零:现代操作系统将内存分配给相对粗糙的块(称为页面)的进程,这些块大于单个变量(x86上至少为4KB)。 当您有一个单一的全局变量时,它将位于页面上的某个位置。 假设a类型为int[][] , int s是系统上的四个字节, a[27][27]将从a开始位于大约500个字节。 所以只要a接近页面的开头,访问a[27][27]将被实际的内存支持,读取它不会导致页面错误/访问冲突。 当然,你不能指望这一点。 例如,如果a之前有其他 ...
  • 这个评论不太对劲: extern T const * const pObjImmutable; // immutable pointer to immutable memory 指针可能指向可变或不可变的内存,我们无法分辨。 我们只能说这个指针不能用来修改那个内存。 目标可能是可变的,并且可能在读取此指针之间发生变化; 唯一的限制是该指针不能写入内存。 调用一个函数来修改内存驻留区域? 我不确定你到底是什么意思。 如果您有以下内容: static const T constThing; 然后一些代码修 ...
  • 因为你已经在头文件中声明了数组静态,所以每个编译单元(即预处理的.cpp文件)都获得了自己的数组副本 - 几乎肯定不是你想要的,并且肯定是你得到了“定义但是没用过“错误。 相反,您可能希望在头文件中使用它: extern MyStruct_t *MyStructArray; ...然后正好在1.cpp文件中: MyStruct_t MyStructArray[] = { ...}; Because you've declared the array static in a header file, ea ...
  • 你有两个不同的页面,你不能传递这样的数据。 但是你可以将它保存在localStorage fe中并从那里使用它。 You have two different pages, you cannot pass data like this. But you can save it in localStorage f.e. and use it from there.
  • 访问全局内存的最快方法是通过合并访问,但在您的情况下,这可能无法实现。 您可以调查只读的纹理内存,但通常用于空间2D访问。 Cuda最佳实践指南的第3.2节提供了有关此技术和其他记忆技术的重要信息。 The fastest way to access global memory is via coalesced access, however in your case this may not be possible. You could investigate texture memory which i ...
  • 你的问题出在其他地方。 $ GLOBALS是一个可从任何范围访问的超全局变量。 当您在$ GLOBALS中定义一个新条目时,它会自动创建一个保存相同名称的变量,但该变量仅在该特定范围内可见。 如果您在另一个范围内,并且想将其初始化为变量,则需要使用global关键字: global $var; (查看下面的代码示例 - 在test()函数内部)。 你确定100%是否总是进行相同的测试(你是否100%肯定地说,在测试时,你总是进入foreach声明?) 澄清$ GLOBALS的行为:
  • run将空数组分配给hour , db和wb 。 这些是本地作用于run函数的变量。 然后它调用getData并将这些数组作为参数传递。 在getData内部声明了新的局部变量(也称为hour , db和wb ),并wb分配了调用函数时传递的三个空数组。 然后该函数忽略这些值并用新数组 覆盖它们(这些数组具有内容)。 然后它返回另一个包含每个数组的新数组。 这让我们重新run 。 完全忽略getData的返回值,并访问原始数组(仍然存储在属于run的hour , db和wb变量中)(但它们仍为空)。 你可以 ...
  • 我能够使用numpy的memmap解决这个简单例子的问题。 在使用memmap并遵循joblib文档网页上的示例后我仍然遇到问题,但是我通过pip升级到最新的joblib版本(0.9.3)并且它运行顺利。 这是工作代码: from joblib import Parallel, delayed import numpy as np import os import tempfile import shutil def main(): print "Nested loop array assign ...
  • 是的,确实是一种未定义的行为。 它违反了所谓的严格别名规则 - 它禁止通过不相关的指针访问对象(除非特别要求,否则我不会详述这里不相关的内容)。 但是,结构的浮点数组是不相关的。 以下是标准(3.10 / 10)的摘录: 如果程序试图通过以下类型之一以外的glvalue访问对象的存储值,则行为未定义: - 对象的动态类型, - 对象的动态类型的cv限定版本, - 与对象的动态类型类似的类型(如4.4中所定义), - 与对象的动态类型对应的有符号或无符号类型的类型, - 对应于对象动态类型的cv限定版本的有符 ...
  • 因为您正在使用异步函数geocoder.geocode 。 这意味着您在此功能完成之前打印到console var。 使用回调或承诺。 Because you are using asynchronous function geocoder.geocode. That means that you are printing to console var before this function is finished. Use callback or promises.

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。