Passbook for iOSは、サーバーが特定のパスを識別するために使用できるシリアル番号を使用します。
通帳のシリアル番号に有効な文字を知っている人はいますか?数字と文字が有効であることは知っていますが、記号/句読点も有効ですか(「-」や「。」など)?
また、シリアル番号の最大長はどれくらいですか?
ありがとうございました。
シリアルが一意である限り、「-」や「。」など、ほとんどすべての文字を使用できます。'\'などの特殊文字は適切にエスケープする必要がありますが、これらはデータベースと互換性がない可能性があり、コードの他の場所で適切に処理されない場合は他の問題を引き起こす可能性があります。
次の通帳で通帳を試したところ、問題なく通帳に追加されました。
"serialNumber":"[]{}-_)(*&^%$#@!`~+=|\\\/?.><,:;"
UTF8でエンコードされた文字も問題ありません。
"serialNumber":"\u9127\u6a02\u611a" // Chinese characters 鄧樂愚
最大長については、実験は非常に簡単ですが、制限はわかりません。
この400文字のシリアルもOKを取り込みます。
"serialNumber":"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
シリアルにいかなる種類のユーザー入力も使用しないことをお勧めします。これは、一意でない衝突につながり、インジェクション攻撃にさらされる可能性があるためです。また、将来的にアーキテクチャを変更した場合(AWS DynamoDBなどのWebサービスソリューションなど)に問題を回避するために、XML標準に準拠することは悪い習慣ではありません。シリアルをBase64でエンコードすると、広範な互換性が保証されます。
シリアルは、パスにメタデータを保存するためにも使用できます。
"serialNumber":"UniqueID|data1|data2|data3|etc."