小编roo*_*roo的帖子

什么时候应该在C++中使用'friend'?

我一直在阅读C++常见问题,并对该friend声明感到好奇.我个人从未使用它,但我有兴趣探索这种语言.

什么是使用的好例子friend


阅读常见问题更长一点我喜欢<< >>运算符重载的想法,并添加为这些类的朋友.但是我不确定这是如何不破坏封装的.这些例外何时可以保持在OOP的严格范围内?

c++ oop encapsulation friend

343
推荐指数
11
解决办法
16万
查看次数

是否值得加密数据库中的电子邮件地址?

我已经使用盐水散列将密码存储在我的数据库中,这意味着我应该免受彩虹表攻击.

不过我有一个想法:如果有人确实掌握了我的数据库怎么办?它包含用户的电子邮件地址.我不能真正哈希这些,因为我将使用它们发送通知电子邮件等.

我应该加密它们吗?

security email encryption

45
推荐指数
4
解决办法
2万
查看次数

SQL注入?CHAR(45,120,49,45,81,45)

我刚看到这个出现在我们的请求日志中.他们想要实现什么目标?

完整的请求字符串是:

properties?page=2side1111111111111 UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45) -- /*
Run Code Online (Sandbox Code Playgroud)

编辑:由于谷歌搜索没有返回任何有用的东西,我想问那些遇到同样事情的人.

sql-injection

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

C++中的安全内存分配器

我想创建一个分配器,它提供具有以下属性的内存:

  • 无法分页到磁盘.
  • 很难通过附加的调试器访问

这个想法是,它将包含敏感信息(如许可证信息),这些信息应该是用户无法访问的.我在网上做了一般的研究,并向其他几个人询问了这个问题,但我找不到一个好的地方开始解决这个问题.

更新

Josh提到VirtualAlloc用来设置内存空间的保护.我创建了一个自定义分配器(如下所示)我发现使用VirtualLock它限制了我可以分配的内存量的函数.这似乎是设计的.由于我将它用于小物件,这不是问题.

//
template<class _Ty>
class LockedVirtualMemAllocator : public std::allocator<_Ty>
{
public:
    template<class _Other>
    LockedVirtualMemAllocator<_Ty>& operator=(const LockedVirtualMemAllocator<_Other>&)
    {   // assign from a related LockedVirtualMemAllocator (do nothing)
        return (*this);
    }

    template<class Other>
    struct rebind {
        typedef LockedVirtualMemAllocator<Other> other;
    };

    pointer allocate( size_type _n )
    {
        SIZE_T  allocLen = (_n * sizeof(_Ty));
        DWORD   allocType = MEM_COMMIT;
        DWORD   allocProtect = PAGE_READWRITE;
        LPVOID pMem = ::VirtualAlloc( NULL, allocLen, allocType, allocProtect );
        if ( pMem != …
Run Code Online (Sandbox Code Playgroud)

c++ memory security ram-scraping

11
推荐指数
5
解决办法
6184
查看次数

我们有很多数据库迁移文件 - 我们应该保留它们吗?

我们有大约100个数据库迁移文件.他们中的许多人进行了不可逆转的架构更改.稍后还有一些迁移可以更改或删除在早期迁移中创建的表.

我们正在直接从schema.rb文件创建新数据库,所以我们想知道是否有任何理由保留完整的迁移集合?

我们将创建一个基于现有schema.rb的新迁移.

ruby-on-rails database-migration

9
推荐指数
2
解决办法
776
查看次数

合并多个xslt样式表

我有一个带有多个xsl:imports 的xslt样式表,我想将它们全部合并到一个xslt文件中.

它是我们正在使用的系统的限制,它作为存储在内存中的字符串对象传递到xsl样式表.这将传输到执行转换的远程计算机.由于它没有从磁盘加载,因此href链接被破坏,因此我们需要xsl:import从样式表中删除s.

有没有可以做到这一点的工具?

xslt

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

char []到十六进制字符串练习

下面是我当前的char*到十六进制字符串函数.我把它写成一个位操作练习.在AMD Athlon MP 2800+上花费大约7毫秒来对1000万字节阵列进行取消.我缺少任何技巧或其他方式吗?

我怎样才能让它更快?

用-O3以g ++编译

static const char _hex2asciiU_value[256][2] =
     { {'0','0'}, {'0','1'}, /* snip..., */ {'F','E'},{'F','F'} };

std::string char_to_hex( const unsigned char* _pArray, unsigned int _len )
{
    std::string str;
    str.resize(_len*2);
    char* pszHex = &str[0];
    const unsigned char* pEnd = _pArray + _len;

    clock_t stick, etick;
    stick = clock();
    for( const unsigned char* pChar = _pArray; pChar != pEnd; pChar++, pszHex += 2 ) {
        pszHex[0] = _hex2asciiU_value[*pChar][0];
        pszHex[1] = _hex2asciiU_value[*pChar][1];
    }
    etick = clock();

    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ optimization hex

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

如何测试一个块是否产生?

我有一个测试需要检查是否正在调用给定方法的块.

block = lambda { 
    #some stuff 
}
block.should_receive(:call)

get_data_with_timeout(1, &block)

def get_data_with_timeout(timeout)
    begin
        timeout(timeout) {
            data = get_data
            yield data #do stuff
        }
    rescue Timeout::Error
        #timeout!
    end
end
Run Code Online (Sandbox Code Playgroud)

基本上我想检查一下,如果没有超时,则调用该块,反之亦然.这在rspec中是否可行?

ruby rspec

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

电子邮件中的PDF附件称为"Noname"

当我发送附带pdf文件的电子邮件时,电子邮件只会显示一个名为"Noname"的文件.文件本身是电子邮件的多部分部分,其中base64附加了pdf.如何发送PDF以使其作为附件出现并且不会破坏电子邮件?

这是我的代码:

attachments['126539_statistics.pdf'] = File.read("app/assets/pdfs/126539_statistics.pdf")
mail(:to => email, :subject => subject, :body => message,  :content_type => 'application/pdf') 
Run Code Online (Sandbox Code Playgroud)

email ruby-on-rails ruby-on-rails-3

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