小编Tom*_*Tom的帖子

BinaryFormatter 反序列化恶意代码?

我听说BinaryFormatter 存在安全问题。

我将用户生成的文件从客户端发送到服务器。这些是序列化的类,然后由服务器读取。

根据我对上述链接的理解,这是危险的。但我尝试过发送一次性类,甚至尝试过实现 ISerilized 的类。但由于服务器不知道源程序集,两者都被拒绝。

[Serializable]
public class Ship : ISerializable
{
    public Ship()
    {

    }

    public Ship(SerializationInfo info, StreamingContext context)
    {
        Console.WriteLine("test");
    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

那么客户端如何通过这个向量成功地将代码获取到我的服务器中呢?通过伪造命名空间名称和公钥导致服务器尝试反序列化它,从而运行上面的代码?还是有更微妙的方法来做到这一点?

不幸的是,这个功能是我游戏的核心基础,所以我要小心。

c# serialization binaryformatter

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

C++重载运算符<<除了ostream之外的其他东西

我试图在一个课程作品上展示多样性,并希望使用<<运算符轻松地将变量添加到列表中.例如:

UpdateList<string> test;
test << "one" << "two" << "three";
Run Code Online (Sandbox Code Playgroud)

我的问题是,每个<<运算符的例子都与ostream有关.

我目前的尝试是:

template <class T> class UpdateList
{
     ...ect...

     UpdateList<T>& operator <<(T &value)
     {
          return out;
     }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我是如何实现这一点的,或者在C++中实际上是不可能的?

c++ templates list operator-keyword

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