Encapsulamento consiste em traçar limites fortes. Em um navegador web, isso pode significar que seu código para dispositivos móveis não pode ser abusado por outros códigos para dispositivos móveis. No servidor, pode significar a diferenciação entre dados validados e não validados, entre os dados de dois usuários ou entre os dados que os usuários podem ou não acessar.
"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
: Restrição para acessar usando a ID de toque ou a senha. A ID de toque não precisa estar disponível ou registrada. O item ainda estará acessível pela ID de toque, mesmo se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDAny
: Restrição para acessar usando a ID de toque para quaisquer impressões digitais registradas. O item não será invalidado se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDCurrentSet
: Restrição para acessar usando a ID de toque para as impressões digitais registradas no momento. O item será invalidado se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDCurrentSet
para proteger contra a adição ou remoção de impressões digitais no futuro.kSecAccessControlTouchIDAny
que permite que todas as impressões digitais cadastradas no futuro desbloqueiem o item de conjunto de chaves:
...
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
: Restrição para acessar usando a ID de toque ou a senha. A ID de toque não precisa estar disponível ou registrada. O item ainda estará acessível pela ID de toque, mesmo se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDAny
: Restrição para acessar usando a ID de toque para quaisquer impressões digitais registradas. O item não será invalidado se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDCurrentSet
: Restrição para acessar usando a ID de toque para as impressões digitais registradas no momento. O item será invalidado se as impressões digitais forem adicionadas ou removidas.kSecAccessControlTouchIDCurrentSet
para proteger contra a adição ou remoção de impressões digitais no futuro.kSecAccessControlTouchIDAny
que permite que todas as impressões digitais cadastradas no futuro desbloqueiem o item de conjunto de chaves:
...
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>
pode deixar vazar informações confidenciais em um aplicativo da Web implantado.<cfdump>
. Embora o uso de <cfdump>
seja aceitável durante o desenvolvimento do produto, os desenvolvedores responsáveis pelo código que faz parte de um aplicativo Web de produção deve considerar cuidadosamente se qualquer uso da tag <cfdump>
deve ser permitido.X-Frame-Options
.X-Frame-Options
.