Я слышал, что есть вопросы безопасности по BinaryFormatter.
Я отправляю пользовательские файлы на сервер с клиента. Это сериализованные классы, которые затем считываются сервером.
Насколько я понимаю приведенную выше ссылку, это опасно. Но я пробовал отправлять одноразовые классы и даже пробовал класс, реализующий ISerilizable. Но оба были отклонены из-за того, что сервер не знал исходной сборки.
[Serializable]
public class Ship : ISerializable
{
public Ship()
{
}
public Ship(SerializationInfo info, StreamingContext context)
{
Console.WriteLine("test");
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
}
}
Так как же клиент может успешно загрузить код на мой сервер через этот вектор? Подделывая имя пространства имен и открытый ключ, заставляя сервер пытаться десериализовать его, таким образом запуская приведенный выше код? Или есть более тонкие способы сделать это?
К сожалению, эта функция является фундаментальной для моей игры, поэтому я хочу быть осторожным.
BinaryFormatter
или сериализовать ваши данные? Или сериализовать ваши данные в двоичном формате? - person John Saunders   schedule 08.01.2014