Overview
概要
NSData and its mutable subclass NSMutableData
provide data objects, or object-oriented wrappers for byte buffers. Data objects let simple allocated buffers (that is, data with no embedded pointers) take on the behavior of Foundation objects.
NSDataとそれの可変のサブクラスNSMutableData
は、データオブジェクト、またはバイトバッファに対するオブジェクト指向ラッパーを提供します。データオブジェクトそれらは、単純な割り当てられたバッファ(すなわち、埋め込まれたポインタを持たないデータ)にFoundationオブジェクトの挙動を取らせます。
The size of the data is subject to a theoretical limit of about 8 exabytes (1 EB = 10¹⁸ bytes; in practice, the limit should not be a factor).
データのサイズは、おおよそ8エクサバイトの理論上の制限に従わなければなりません(1EB = 10¹⁸ バイト;実祭には、制限は要因とはならないはずです)。
NSData is toll-free bridged with its Core Foundation counterpart, CFData
. See Toll-Free Bridging for more information on toll-free bridging.
NSDataは、トールフリーブリッジ(通行料なしの橋渡し)をそれのCore Foundation相当物、CFData
とされます。トールフリーブリッジに関する更なる情報としてToll-Free Bridgingを見てください。
Writing Data Atomically
データを原子的に書き出す
NSData provides methods for atomically saving their contents to a file, which guarantee that the data is either saved in its entirety, or it fails completely. An atomic write first writes the data to a temporary file and then, only if this write succeeds, moves the temporary file to its final location.
NSDataは、それらの内容をあるファイルに原子的に保存するためのメソッドを提供します、それはそのデータがそっくりそのまま保存される、またはそれが完全に失敗するかどちらかであることを保証します。原始的書き出しは、最初にデータを一時ファイルに書き出して、それから、そしてこの書き出しが成功する場合にのみ、その一時ファイルをそれの最終的な位置に移動します。
Although atomic write operations minimize the risk of data loss due to corrupt or partially written files, they may not be appropriate when writing to a temporary directory, the user’s home directory or other publicly accessible directories. When you work with a publicly accessible file, treat that file as an untrusted and potentially dangerous resource. An attacker may compromise or corrupt these files. The attacker can also replace the files with hard or symbolic links, causing your write operations to overwrite or corrupt other system resources.
たとえ原始的書き出し操作が、破壊されたまたは部分的な書き出しファイルを原因とするデータ消失の危険性を最小化するとはいえ、それは、一時的ディレクトリ、ユーザの持つホームディレクトリまたは他のパブリックにアクセス可能なディレクトリに書き出す場合に適切でないかもしれません。あなたがパブリックにアクセス可能なファイルで作業する場合、そのファイルを信頼できないそして潜在的に危険なリソースとして扱ってください。攻撃者が、それらファイルを損なったり改悪するかもしれません。攻撃者はまた、ファイルをハードもしくはシンボリックなリンクと置き換えて、あなたの書き込み操作に他のシステムリソースを上書きまたは改悪させる可能性もあります。
Avoid using the write(to:atomically:)
method (and the related methods) when working inside a publicly accessible directory. Instead, use FileHandle
with an existing file descriptor to securely write the file.
write(to:atomically:)
メソッド(およびその関連メソッド)の使用を、パブリックにアクセス可能なディレクトリの内部で作業する場合に避けてください。代わりに、FileHandle
を既存のファイル記述子とともに使って、安全にファイルを書き出してください。
For more information, see Securing File Operations in Secure Coding Guide.
さらなる情報として、Securing File OperationsをSecure Coding Guideで見てください。