캡슐화는 강력한 경계를 그리는 것입니다. 웹 브라우저에서는 사용자의 모바일 코드가 다른 모바일 코드에 의해 오용되지 않도록 하는 것을 의미합니다. 서버에서는 검증된 데이터와 검증되지 않은 데이터, 한 사용자의 데이터와 다른 사용자의 데이터, 데이터 사용자가 볼 수 있는 데이터와 볼 수 없는 데이터 간의 차별화를 의미할 수 있습니다.
"Resources": {
"RDSDBExample": {
"Type": "AWS::RDS::DBInstance",
"Properties": {
"StorageEncrypted": false,
"DBName": "Test DB",
"DBInstanceClass": "db.m4.large"
}
}
}
"Resources": {
"RedshiftClusterTest": {
"Type": "AWS::Redshift::Cluster",
"Properties": {
"DBName": "mydb",
"MasterUsername": "master",
"MasterUserPassword": "masterPass",
"NodeType": "ds2.xlarge",
"ClusterType": "single-node",
}
}
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "My SNS topic",
"Resources": {
"MySNSTopic": {
"Type": "AWS::SNS::Topic",
"Properties": {
"Subscription": [
{
"Endpoint": "MySNSEndpoint",
"Protocol": "sqs"
}
],
"TopicName": "MyTopic"
}
}
}
}
AWSTemplateFormatVersion: 2010-09-09
Description: My SNS Topic
Resources:
MySNSTopic:
Type: AWS::SNS::Topic
Properties:
Subscription:
- Endpoint: "MySNSEndpoint"
Protocol: "sqs"
TopicName: "SampleTopic"
kSecAccessControlUserPresence
: 터치 ID 또는 암호를 사용한 액세스로 제한합니다. 터치 ID가 사용 가능하거나 등록될 필요가 없습니다. 지문이 추가되거나 제거되더라도 터치 ID로 항목에 액세스할 수 있습니다.kSecAccessControlTouchIDAny
: 터치 ID를 사용한 액세스를 등록된 모든 지문으로 제한합니다. 지문이 추가되거나 제거될 때 항목이 무효화되지 않습니다.kSecAccessControlTouchIDCurrentSet
: 터치 ID를 사용한 액세스를 현재 등록된 모든 지문으로 제한합니다. 지문이 추가되거나 제거될 때 항목이 무효화됩니다.kSecAccessControlTouchIDCurrentSet
특성을 사용하여 향후 지문 추가 또는 제거로부터 보호해야 합니다.kSecAccessControlTouchIDAny
제약 조건을 사용합니다.
...
SecAccessControlRef sacRef = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly,
kSecAccessControlTouchIDCurrentSet,
nil);
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id) kSecClass];
[dict setObject:account forKey:(__bridge id)kSecAttrAccount];
[dict setObject:service forKey:(__bridge id) kSecAttrService];
[dict setObject:token forKey:(__bridge id)kSecValueData];
...
[dict setObject:sacRef forKey:(__bridge id)kSecAttrAccessControl];
[dict setObject:@"Please authenticate using the Touch ID sensor." forKey:(__bridge id)kSecUseOperationPrompt];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
OSStatus status = SecItemAdd((__bridge CFDictionaryRef)dict, nil);
});
...
kSecAccessControlUserPresence
: 터치 ID 또는 암호를 사용한 액세스로 제한합니다. 터치 ID가 사용 가능하거나 등록될 필요가 없습니다. 지문이 추가되거나 제거되더라도 터치 ID로 항목에 액세스할 수 있습니다.kSecAccessControlTouchIDAny
: 터치 ID를 사용한 액세스를 등록된 모든 지문으로 제한합니다. 지문이 추가되거나 제거될 때 항목이 무효화되지 않습니다.kSecAccessControlTouchIDCurrentSet
: 터치 ID를 사용한 액세스를 현재 등록된 모든 지문으로 제한합니다. 지문이 추가되거나 제거될 때 항목이 무효화됩니다.kSecAccessControlTouchIDCurrentSet
특성을 사용하여 향후 지문 추가 또는 제거로부터 보호해야 합니다.kSecAccessControlTouchIDAny
제약 조건을 사용합니다.
...
let flags = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly,
.TouchIDAny,
nil)
var query = [String : AnyObject]()
query[kSecClass as String] = kSecClassGenericPassword
query[kSecAttrService as String] = service as AnyObject?
query[kSecAttrAccount as String] = account as AnyObject?
query[kSecValueData as String] = secret as AnyObject?
...
query[kSecAttrAccessControl as String] = sacRef
query[kSecUseOperationPrompt as String] = "Please authenticate using the Touch ID sensor."
SecItemAdd(query as CFDictionary, nil)
...
<cfdump>
태그는 배포된 웹 응용 프로그램의 민감한 정보를 누출할 수 있습니다.<cfdump>
태그입니다. 제품 개발 중에는 <cfdump>
의 사용이 허용되더라도 운영 웹 응용 프로그램에 속한 코드를 담당하는 개발자는 <cfdump>
태그의 사용을 허용할지 여부를 신중하게 고려해야 합니다.X-Frame-Options
헤더를 통해 프레이밍 정책을 지정하지 못하는 경우X-Frame-Options
헤더를 통해 프레이밍 정책을 지정하지 못하는 경우