...
password = 'tiger'.
...
...
URLRequestDefaults.setLoginCredentialsForHost(hostname, "scott", "tiger");
...
...
HttpRequest req = new HttpRequest();
req.setClientCertificate('mycert', 'tiger');
...
...
NetworkCredential netCred =
new NetworkCredential("scott", "tiger", domain);
...
...
rc = SQLConnect(*hdbc, server, SQL_NTS, "scott",
SQL_NTS, "tiger", SQL_NTS);
...
...
MOVE "scott" TO UID.
MOVE "tiger" TO PASSWORD.
EXEC SQL
CONNECT :UID
IDENTIFIED BY :PASSWORD
AT :MYCONN
USING :MYSERVER
END-EXEC.
...
...
<cfquery name = "GetSSNs" dataSource = "users"
username = "scott" password = "tiger">
SELECT SSN
FROM Users
</cfquery>
...
...
var password = "foobarbaz";
...
javap -c
para acessar o código desmontado, que conterá os valores das senhas utilizadas. O resultado dessa operação pode ser algo semelhante ao seguinte para o Example 1
:
javap -c ConnMngr.class
22: ldc #36; //String jdbc:mysql://ixne.com/rxsql
24: ldc #38; //String scott
26: ldc #17; //String tiger
password := "letmein"
...
response.SetBasicAuth(usrName, password)
...
DriverManager.getConnection(url, "scott", "tiger");
...
javap -c
para acessar o código desmontado, que conterá os valores das senhas utilizadas. O resultado dessa operação pode ser algo semelhante ao seguinte para o Example 1
:
javap -c ConnMngr.class
22: ldc #36; //String jdbc:mysql://ixne.com/rxsql
24: ldc #38; //String scott
26: ldc #17; //String tiger
...
webview.setWebViewClient(new WebViewClient() {
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
handler.proceed("guest", "allow");
}
});
...
Example 1
, esse código será executado com êxito, mas qualquer usuário que tiver acesso a ele também terá acesso à senha.
...
obj = new XMLHttpRequest();
obj.open('GET','/fetchusers.jsp?id='+form.id.value,'true','scott','tiger');
...
...
{
"username":"scott"
"password":"tiger"
}
...
...
DriverManager.getConnection(url, "scott", "tiger")
...
javap -c
para acessar o código desmontado, que conterá os valores das senhas utilizadas. O resultado dessa operação pode ser algo semelhante ao seguinte para o Example 1
:
javap -c ConnMngr.class
22: ldc #36; //String jdbc:mysql://ixne.com/rxsql
24: ldc #38; //String scott
26: ldc #17; //String tiger
...
webview.webViewClient = object : WebViewClient() {
override fun onReceivedHttpAuthRequest( view: WebView,
handler: HttpAuthHandler, host: String, realm: String
) {
handler.proceed("guest", "allow")
}
}
...
Example 1
, esse código será executado com êxito, mas qualquer usuário que tiver acesso a ele também terá acesso à senha.
...
rc = SQLConnect(*hdbc, server, SQL_NTS, "scott",
SQL_NTS, "tiger", SQL_NTS);
...
...
$link = mysql_connect($url, 'scott', 'tiger');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
...
DECLARE
password VARCHAR(20);
BEGIN
password := "tiger";
END;
password = "tiger"
...
response.writeln("Password:" + password)
...
Mysql.new(URI(hostname, 'scott', 'tiger', databasename)
...
...
ws.url(url).withAuth("john", "secret", WSAuthScheme.BASIC)
...
javap -c
para acessar o código desmontado, que conterá os valores das senhas utilizadas. O resultado dessa operação pode ser algo semelhante ao seguinte para Example 1
:
javap -c MyController.class
24: ldc #38; //String john
26: ldc #17; //String secret
...
let password = "secret"
let username = "scott"
let con = DBConnect(username, password)
...
...
https://user:secretpassword@example.com
...
...
Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
con.ConnectionString = "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=scott;Passwd=tiger;"
...
...
credential_settings:
username: scott
password: tiger
...
Null
podem comprometer a segurança.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
var storedPassword:String = null;
var temp:String;
if ((temp = readPassword()) != null) {
storedPassword = temp;
}
if(Utils.verifyPassword(userPassword, storedPassword))
// Access protected resources
...
}
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.null
a senhas nunca é uma boa ideia, pois pode permitir que invasores ignorem a verificação de senhas ou pode indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if (Utils.VerifyPassword(storedPassword, userPassword)) {
// Access protected resources
...
}
...
ReadPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}
...
ReadPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
char *stored_password = NULL;
readPassword(stored_password);
if(safe_strcmp(stored_password, user_password))
// Access protected resources
...
}
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para user_password
.null
a senhas nunca é uma boa ideia, pois pode permitir que invasores ignorem a verificação de senhas ou pode indicar que os recursos estão protegidos por uma senha vazia.null
a variáveis de senha é uma má ideia, pois pode permitir que invasores se esquivem da verificação de senha ou pode indicar que recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
String storedPassword = null;
String temp;
if ((temp = readPassword()) != null) {
storedPassword = temp;
}
if(Utils.verifyPassword(userPassword, storedPassword))
// Access protected resources
...
}
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.null
, lê as credenciais de um repositório WebView do Android caso elas não tenham sido rejeitadas anteriormente pelo servidor para a requisição atual e as utiliza de forma a configurar a autenticação para a visualização de páginas protegidas.
...
webview.setWebViewClient(new WebViewClient() {
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
String username = null;
String password = null;
if (handler.useHttpAuthUsernamePassword()) {
String[] credentials = view.getHttpAuthUsernamePassword(host, realm);
username = credentials[0];
password = credentials[1];
}
handler.proceed(username, password);
}
});
...
Example 1
, se useHttpAuthUsernamePassword()
retornar false
, o invasor será capaz de visualizar páginas protegidas fornecendo uma senha null
.null
.null
:
...
var password=null;
...
{
password=getPassword(user_data);
...
}
...
if(password==null){
// Assumption that the get didn't work
...
}
...
null
a variáveis de senha, porque isso pode permitir que invasores contornem a verificação de senha ou indicar que os recursos não estão protegidos por senha.null
.
{
...
"password" : null
...
}
null
. Senhas Null
podem comprometer a segurança.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
NSString *stored_password = NULL;
readPassword(stored_password);
if(safe_strcmp(stored_password, user_password)) {
// Access protected resources
...
}
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para user_password
.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
<?php
...
$storedPassword = NULL;
if (($temp = getPassword()) != NULL) {
$storedPassword = $temp;
}
if(strcmp($storedPassword,$userPassword) == 0) {
// Access protected resources
...
}
...
?>
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
.
DECLARE
password VARCHAR(20);
BEGIN
password := null;
END;
null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
storedPassword = NULL;
temp = getPassword()
if (temp is not None) {
storedPassword = temp;
}
if(storedPassword == userPassword) {
// Access protected resources
...
}
...
getPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para userPassword
.nil
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.nil
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
@storedPassword = nil
temp = readPassword()
storedPassword = temp unless temp.nil?
unless Utils.passwordVerified?(@userPassword, @storedPassword)
...
end
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para @userPassword
.nil
e como um valor padrão quando não houver um especificado. Nesse caso você também precisa certificar-se de que a quantidade certa de argumentos seja especificada para ter certeza de que uma senha seja passada para a função.null
a variáveis de senha é uma má ideia, pois pode permitir que invasores se esquivem da verificação de senha ou pode indicar que recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
ws.url(url).withAuth("john", null, WSAuthScheme.BASIC)
...
null
. Senhas Null
podem comprometer a segurança.nil
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
, tenta ler um valor armazenado para a senha e o compara com um valor fornecido pelo usuário.
...
var stored_password = nil
readPassword(stored_password)
if(stored_password == user_password) {
// Access protected resources
...
}
...
readPassword()
não conseguir recuperar a senha armazenada devido a um erro de banco de dados ou outro problema, um invasor poderá se esquivar trivialmente da verificação de senha fornecendo um valor null
para user_password
.null
a variáveis de senha nunca é uma boa ideia, pois pode permitir que invasores contornem a verificação de senha ou possam indicar que os recursos estão protegidos por uma senha vazia.null
e a usa para se conectar a um banco de dados.
...
Dim storedPassword As String
Set storedPassword = vbNullString
Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
con.ConnectionString = "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=scott;Passwd=" & storedPassword &";"
...
Example 1
for bem-sucedido, ele indicará que a conta de usuário de banco de dados "scott" está configurada com uma senha vazia, que um invasor pode adivinhar facilmente. Depois que o programa for distribuído, a atualização da conta para usar uma senha não vazia exigirá uma mudança de código.
...
var fs:FileStream = new FileStream();
fs.open(new File("config.properties"), FileMode.READ);
var decoder:Base64Decoder = new Base64Decoder();
decoder.decode(fs.readMultiByte(fs.bytesAvailable, File.systemCharset));
var password:String = decoder.toByteArray().toString();
URLRequestDefaults.setLoginCredentialsForHost(hostname, usr, password);
...
config.properties
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
string value = regKey.GetValue(passKey).ToString());
byte[] decVal = Convert.FromBase64String(value);
NetworkCredential netCred =
new NetworkCredential(username,decVal.toString(),domain);
...
password
. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
RegQueryValueEx(hkey, TEXT(.SQLPWD.), NULL,
NULL, (LPBYTE)password64, &size64);
Base64Decode(password64, size64, (BYTE*)password, &size);
rc = SQLConnect(*hdbc, server, SQL_NTS, uid,
SQL_NTS, password, SQL_NTS);
...
password64
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações pode usá-las para invadir o sistema.
...
01 RECORDX.
05 UID PIC X(10).
05 PASSWORD PIC X(10).
05 LEN PIC S9(4) COMP.
...
EXEC CICS
READ
FILE('CFG')
INTO(RECORDX)
RIDFLD(ACCTNO)
...
END-EXEC.
CALL "g_base64_decode_inplace" using
BY REFERENCE PASSWORD
BY REFERENCE LEN
ON EXCEPTION
DISPLAY "Requires GLib library" END-DISPLAY
END-CALL.
EXEC SQL
CONNECT :UID
IDENTIFIED BY :PASSWORD
END-EXEC.
...
CFG
poderá ler o valor da senha e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
file, _ := os.Open("config.json")
decoder := json.NewDecoder(file)
decoder.Decode(&values)
password := base64.StdEncoding.DecodeString(values.Password)
request.SetBasicAuth(values.Username, password)
...
config.json
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações pode usá-las para invadir o sistema.
...
<beans:bean id="encoder" class="org.springframework.security.crypto.password.Md4PasswordEncoder"/>
...
config.properties
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações pode usá-las para invadir o sistema.
...
obj = new XMLHttpRequest();
obj.open('GET','/fetchusers.jsp?id='+form.id.value,'true','scott','tiger');
...
plist
e a usa para descompactar um arquivo protegido por senha.
...
NSDictionary *dict= [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"]];
NSString *encoded_password = [dict valueForKey:@"encoded_password"];
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:encoded_password options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
[SSZipArchive unzipFileAtPath:zipPath toDestination:destPath overwrite:TRUE password:decodedString error:&error];
...
Config.plist
poderá ler o valor de encoded_password
e determinar facilmente que esse valor foi codificado em base 64.
...
$props = file('config.properties', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$password = base64_decode($props[0]);
$link = mysql_connect($url, $usr, $password);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
...
config.properties
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
props = os.open('config.properties')
password = base64.b64decode(props[0])
link = MySQLdb.connect (host = "localhost",
user = "testuser",
passwd = password,
db = "test")
...
config.properties
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
require 'pg'
require 'base64'
...
passwd = Base64.decode64(ENV['PASSWD64'])
...
conn = PG::Connection.new(:dbname => "myApp_production", :user => username, :password => passwd, :sslmode => 'require')
PASSWD64
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
val prop = new Properties();
prop.load(new FileInputStream("config.properties"));
val password = Base64.decode(prop.getProperty("password"));
DriverManager.getConnection(url, usr, password);
...
config.properties
poderá ler o valor de password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações pode usá-las para invadir o sistema.plist
e a usa para descompactar um arquivo protegido por senha.
...
var myDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist") {
myDict = NSDictionary(contentsOfFile: path)
}
if let dict = myDict {
let password = base64decode(dict["encoded_password"])
zipArchive.unzipOpenFile(zipPath, password:password])
}
...
Config.plist
poderá ler o valor de encoded_password
e determinar facilmente que esse valor foi codificado em base 64.
...
root:qFio7llfVKk.s:19033:0:99999:7:::
...
...
...
Private Declare Function GetPrivateProfileString _
Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long
...
Dim password As String
...
password = StrConv(DecodeBase64(GetPrivateProfileString("MyApp", "Password", _
"", value, Len(value), _
App.Path & "\" & "Config.ini")), vbUnicode)
...
con.ConnectionString = "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=scott;Passwd=" & password &";"
...
Config.ini
poderá ler o valor de Password
e determinar facilmente que esse valor foi codificado em base 64. Qualquer funcionário desonesto com acesso a essas informações poderá usá-las para invadir o sistema.
...
*Get the report that is to be deleted
r_name = request->get_form_field( 'report_name' ).
CONCATENATE `C:\\users\\reports\\` r_name INTO dsn.
DELETE DATASET dsn.
...
..\\..\\usr\\sap\\DVEBMGS00\\exe\\disp+work.exe
", o aplicativo excluirá um arquivo crítico e travará imediatamente o sistema SAP.
...
PARAMETERS: p_date TYPE string.
*Get the invoice file for the date provided
CALL FUNCTION 'FILE_GET_NAME'
EXPORTING
logical_filename = 'INVOICE'
parameter_1 = p_date
IMPORTING
file_name = v_file
EXCEPTIONS
file_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
OPEN DATASET v_file FOR INPUT IN TEXT MODE.
DO.
READ DATASET v_file INTO v_record.
IF SY-SUBRC NE 0.
EXIT.
ELSE.
WRITE: / v_record.
ENDIF.
ENDDO.
...
..\\..\\usr\\sap\\sys\\profile\\default.pfl
" em vez de uma data válida, o aplicativo revelará todas as configurações padrão de parâmetros de perfil do servidor de aplicativos SAP, possivelmente provocando ataques mais refinados.../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e para gravar em um console de "Depuração" ou em um arquivo de log. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var rName:String = String(params["reportName"]);
var rFile:File = new File("/usr/local/apfr/reports/" + rName);
...
rFile.deleteFile();
.txt
.
var fs:FileStream = new FileStream();
fs.open(new File(String(configStream.readObject())+".txt"), FileMode.READ);
fs.readBytes(arr);
trace(arr);
public class MyController {
...
public PageRerference loadRes() {
PageReference ref = ApexPages.currentPage();
Map<String,String> params = ref.getParameters();
if (params.containsKey('resName')) {
if (params.containsKey('resPath')) {
return PageReference.forResource(params.get('resName'), params.get('resPath'));
}
}
return null;
}
}
..\\..\\Windows\\System32\\krnl386.exe
", que fará com que o aplicativo exclua um importante arquivo do sistema Windows.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão ".txt".
String rName = Request.Item("reportName");
...
File.delete("C:\\users\\reports\\" + rName);
sr = new StreamReader(resmngr.GetString("sub")+".txt");
while ((line = sr.ReadLine()) != null) {
Console.WriteLine(line);
}
../../apache/conf/httpd.conf
", que fará com que o aplicativo exclua o arquivo de configuração especificado.Exemplo 2: O código a seguir usa a entrada da linha de comando para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem criar links flexíveis para o arquivo, eles poderão usar esse programa para ler a primeira parte de qualquer arquivo no sistema.
char* rName = getenv("reportName");
...
unlink(rName);
ifstream ifs(argv[0]);
string s;
ifs >> s;
cout << s;
...
EXEC CICS
WEB READ
FORMFIELD(FILE)
VALUE(FILENAME)
...
END-EXEC.
EXEC CICS
READ
FILE(FILENAME)
INTO(RECORD)
RIDFLD(ACCTNO)
UPDATE
...
END-EXEC.
...
..\\..\\Windows\\System32\\krnl386.exe
", que fará com que o aplicativo exclua um importante arquivo do sistema Windows.
<cffile action = "delete"
file = "C:\\users\\reports\\#Form.reportName#">
final server = await HttpServer.bind('localhost', 18081);
server.listen((request) async {
final headers = request.headers;
final path = headers.value('path');
File(path!).delete();
}
Example 1
, não há validação de headers.value('path')
antes de executar funções de exclusão em arquivos.../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
rName := "/usr/local/apfr/reports/" + req.FormValue("fName")
rFile, err := os.OpenFile(rName, os.O_RDWR|os.O_CREATE, 0755)
defer os.Remove(rName);
defer rFile.Close()
...
.txt
.
...
config := ReadConfigFile()
filename := config.fName + ".txt";
data, err := ioutil.ReadFile(filename)
...
fmt.Println(string(data))
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
String rName = request.getParameter("reportName");
File rFile = new File("/usr/local/apfr/reports/" + rName);
...
rFile.delete();
.txt
.
fis = new FileInputStream(cfg.getProperty("sub")+".txt");
amt = fis.read(arr);
out.println(arr);
Example 1
à plataforma Android.
...
String rName = this.getIntent().getExtras().getString("reportName");
File rFile = getBaseContext().getFileStreamPath(rName);
...
rFile.delete();
...
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: Este código usa a entrada do armazenamento local para determinar qual arquivo abrir e ecoar de volta ao usuário. Se os usuários mal-intencionados puderem alterar o conteúdo do armazenamento local, eles poderão usar o programa para ler qualquer arquivo no sistema que termine com a extensão
...
var reportNameParam = "reportName=";
var reportIndex = document.indexOf(reportNameParam);
if (reportIndex < 0) return;
var rName = document.URL.substring(reportIndex+reportNameParam.length);
window.requestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
fs.root.getFile('/usr/local/apfr/reports/' + rName, {create: false}, function(fileEntry) {
fileEntry.remove(function() {
console.log('File removed.');
}, errorHandler);
}, errorHandler);
}, errorHandler);
.txt
.
...
var filename = localStorage.sub + '.txt';
function oninit(fs) {
fs.root.getFile(filename, {}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var txtArea = document.createElement('textarea');
txtArea.value = this.result;
document.body.appendChild(txtArea);
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, oninit, errorHandler);
...
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
val rName: String = request.getParameter("reportName")
val rFile = File("/usr/local/apfr/reports/$rName")
...
rFile.delete()
.txt
.
fis = FileInputStream(cfg.getProperty("sub").toString() + ".txt")
amt = fis.read(arr)
out.println(arr)
Example 1
à plataforma Android.
...
val rName: String = getIntent().getExtras().getString("reportName")
val rFile: File = getBaseContext().getFileStreamPath(rName)
...
rFile.delete()
...
- (NSData*) testFileManager {
NSString *rootfolder = @"/Documents/";
NSString *filePath = [rootfolder stringByAppendingString:[fileName text]];
NSFileManager *fm = [NSFileManager defaultManager];
return [fm contentsAtPath:filePath];
}
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
$rName = $_GET['reportName'];
$rFile = fopen("/usr/local/apfr/reports/" . rName,"a+");
...
unlink($rFile);
.txt
.
...
$filename = $CONFIG_TXT['sub'] . ".txt";
$handle = fopen($filename,"r");
$amt = fread($handle, filesize($filename));
echo $amt;
...
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
rName = req.field('reportName')
rFile = os.open("/usr/local/apfr/reports/" + rName)
...
os.unlink(rFile);
.txt
.
...
filename = CONFIG_TXT['sub'] + ".txt";
handle = os.open(filename)
print handle
...
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
rName = req['reportName']
File.delete("/usr/local/apfr/reports/#{rName}")
.txt
.
...
fis = File.new("#{cfg.getProperty("sub")}.txt")
amt = fis.read
puts amt
../../tomcat/conf/server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
def readFile(reportName: String) = Action { request =>
val rFile = new File("/usr/local/apfr/reports/" + reportName)
...
rFile.delete()
}
.txt
.
val fis = new FileInputStream(cfg.getProperty("sub")+".txt")
val amt = fis.read(arr)
out.println(arr)
func testFileManager() -> NSData {
let filePath : String = "/Documents/\(fileName.text)"
let fm : NSFileManager = NSFileManager.defaultManager()
return fm.contentsAtPath(filePath)
}
..\conf\server.xml
", que faz com que o aplicativo exclua um dos seus próprios arquivos de configuração.Exemplo 2: O código a seguir usa a entrada de um arquivo de configuração para determinar qual arquivo deve ser aberto e ecoado de volta para o usuário. Se o programa for executado com privilégios adequados, e usuários mal-intencionados puderem alterar o arquivo de configuração, eles poderão usar esse programa para ler qualquer arquivo no sistema que termine com a extensão
Dim rName As String
Dim fso As New FileSystemObject
Dim rFile as File
Set rName = Request.Form("reportName")
Set rFile = fso.GetFile("C:\reports\" & rName)
...
fso.DeleteFile("C:\reports\" & rName)
...
.txt
.
Dim fileName As String
Dim tsContent As String
Dim ts As TextStream
Dim fso As New FileSystemObject
fileName = GetPrivateProfileString("MyApp", "sub", _
"", value, Len(value), _
App.Path & "\" & "Config.ini")
...
Set ts = fso.OpenTextFile(fileName,1)
tsContent = ts.ReadAll
Response.Write tsContent
...
public static void UnzipFile(ZipArchive archive, string destDirectory)
{
foreach (var entry in archive.Entries)
{
string file = entry.FullName;
if (!string.IsNullOrEmpty(file))
{
string destFileName = Path.Combine(destDirectory, file);
entry.ExtractToFile(destFileName, true);
}
}
}
Example 1
, não há nenhuma validação de entry.FullName
antes da realização de operações de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse originalmente colocado no diretório "C:\TEMP
", o nome de uma entrada ZIP tivesse "..\
segmentos", e o aplicativo fosse executado com as permissões necessárias, ele substituiria os arquivos do sistema.
func Unzip(src string, dest string) ([]string, error) {
var filenames []string
r, err := zip.OpenReader(src)
if err != nil {
return filenames, err
}
defer r.Close()
for _, f := range r.File {
// Store filename/path for returning and using later on
fpath := filepath.Join(dest, f.Name)
filenames = append(filenames, fpath)
if f.FileInfo().IsDir() {
// Make Folder
os.MkdirAll(fpath, os.ModePerm)
continue
}
// Make File
if err = os.MkdirAll(filepath.Dir(fpath), os.ModePerm); err != nil {
return filenames, err
}
outFile, err := os.OpenFile(fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
if err != nil {
return filenames, err
}
rc, err := f.Open()
if err != nil {
return filenames, err
}
_, err = io.Copy(outFile, rc)
// Close the file without defer to close before next iteration of loop
outFile.Close()
rc.Close()
if err != nil {
return filenames, err
}
}
return filenames, nil
}
Example 1
, não há nenhuma validação de f.Name
antes da realização de funções de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse originalmente colocado no diretório "/tmp/
" de um computador Unix, uma entrada ZIP fosse "../etc/hosts
" e o aplicativo fosse executado com as permissões necessárias, ele substituiria o arquivo hosts
do sistema. Isso, por sua vez, permitiria que o tráfego da máquina fosse para qualquer lugar desejado pelo invasor, por exemplo, de volta para a máquina do invasor.
private static final int BUFSIZE = 512;
private static final int TOOBIG = 0x640000;
...
public final void unzip(String filename) throws IOException {
FileInputStream fis = new FileInputStream(filename);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry zipEntry = null;
int numOfEntries = 0;
long total = 0;
try {
while ((zipEntry = zis.getNextEntry()) != null) {
byte data[] = new byte[BUFSIZE];
int count = 0;
String outFileName = zipEntry.getName();
if (zipEntry.isDirectory()){
new File(outFileName).mkdir(); //create the new directory
continue;
}
FileOutputStream outFile = new FileOutputStream(outFileName);
BufferedOutputStream dest = new BufferedOutputStream(outFile, BUFSIZE);
//read data from ZIP, but do not read huge entries
while (total + BUFSIZE <= TOOBIG && (count = zis.read(data, 0, BUFSIZE)) != -1) {
dest.write(data, 0, count);
total += count;
}
...
}
} finally{
zis.close();
}
}
...
Example 1
, não há nenhuma validação de zipEntry.getName()
antes da realização de funções de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse originalmente colocado no diretório "/tmp/
" de uma máquina Unix, uma entrada ZIP fosse "../etc/hosts
" e o aplicativo fosse executado com as permissões necessárias, ele substituiria o arquivo hosts
do sistema. Isso, por sua vez, permitiria que o tráfego da máquina fosse para qualquer lugar desejado pelo invasor, por exemplo, de volta para a máquina do invasor.
var unzipper = require('unzipper');
var fs = require('fs');
var untrusted_zip = getZipFromRequest();
fs.createReadStream(zipPath).pipe(unzipper.Extract({ path: 'out' }));
ZZArchive* archive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath: zipPath] error:&error];
for (ZZArchiveEntry* entry in archive.entries) {
NSString *fullPath = [NSString stringWithFormat: @"%@/%@", destPath, [entry fileName]];
[[entry newDataWithError:nil] writeToFile:newFullPath atomically:YES];
}
Example 1
, não há nenhuma validação de entry.fileName
antes da realização de funções de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse colocado originalmente no diretório "Documents/hot_patches
" de um aplicativo iOS, uma entrada ZIP fosse "../js/page.js
", ele substituiria o arquivo page.js
file. Isso, por sua vez, permitiria que um invasor injetasse um código mal-intencionado que pudesse resultar na execução de código.
import zipfile
import tarfile
def unzip(archive_name):
zf = zipfile.ZipFile(archive_name)
zf.extractall(".")
zf.close()
def untar(archive_name):
tf = tarfile.TarFile(archive_name)
tf.extractall(".")
tf.close()
Exemplo 2: O exemplo a seguir extrai arquivos de um arquivo ZIP e os grava de forma insegura no disco.
import better.files._
...
val zipPath: File = getUntrustedZip()
val destinationPath = file"out/dest"
zipPath.unzipTo(destination = destinationPath)
import better.files._
...
val zipPath: File = getUntrustedZip()
val destinationPath = file"out/dest"
zipPath.newZipInputStream.mapEntries( (entry : ZipEntry) => {
entry.extractTo(destinationPath, new FileInputStream(entry.getName))
})
Example 2
, não há nenhuma validação de entry.getName
antes da realização de funções de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse originalmente colocado no diretório "/tmp/
" de uma máquina Unix, uma entrada ZIP fosse "../etc/hosts
" e o aplicativo fosse executado com as permissões necessárias, ele substituiria o arquivo hosts
do sistema. Isso, por sua vez, permitiria que o tráfego da máquina fosse para qualquer lugar desejado pelo invasor, por exemplo, de volta para a máquina do invasor.
let archive = try ZZArchive.init(url: URL(fileURLWithPath: zipPath))
for entry in archive.entries {
let fullPath = URL(fileURLWithPath: destPath + "/" + entry.fileName)
try entry.newData().write(to: fullPath)
}
Example 1
, não há nenhuma validação de entry.fileName
antes da realização de funções de leitura/gravação nos dados dentro dessa entrada. Se o arquivo ZIP fosse colocado originalmente no diretório "Documents/hot_patches
" de um aplicativo iOS, uma entrada ZIP fosse "../js/page.js
", ele substituiria o arquivo page.js
file. Isso, por sua vez, permitiria que um invasor injetasse um código mal-intencionado que pudesse resultar na execução de código.
...
uid = 'scott'.
password = 'tiger'.
WRITE: / 'Default username for FTP connection is: ', uid.
WRITE: / 'A senha padrão para conexão FTP é: ', password.
...
pass = getPassword();
...
trace(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
...
ResetPasswordResult passRes = System.resetPassword(id1, true);
System.Debug('New password: '+passRes.getPassword());
...
pass = GetPassword();
...
dbmsLog.WriteLine(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.get_password()
retorna a senha de texto sem formatação fornecida pelo usuário que está associada à conta.
pass = get_password();
...
fprintf(dbms_log, "%d:%s:%s:%s", id, pass, type, tstamp);
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no sistema de arquivos como um local de armazenamento seguro para todos os tipos de dados, convém não confiar nele implicitamente, particularmente nos casos em que a privacidade é uma grande preocupação.
...
MOVE "scott" TO UID.
MOVE "tiger" TO PASSWORD.
DISPLAY "Default username for database connection is: ", UID.
DISPLAY "A senha padrão para conexão de banco de dados é: ", PASSWORD.
...
Session.pword
contém a senha de texto sem formatação fornecida pelo usuário que está associada à conta.
<cflog file="app_log" application="No" Thread="No"
text="#Session.uname#:#Session.pword#:#type#:#Now()#">
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
var pass = getPassword();
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.GetPassword()
, que retorna a senha em texto sem formatação fornecida pelo usuário e associada à conta.
pass = GetPassword();
...
if err != nil {
log.Printf('%s: %s %s %s', id, pass, type, tsstamp)
}
Example 1
registra uma senha de texto sem formatação no log de eventos do aplicativo. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
pass = getPassword();
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
...
webview.setWebViewClient(new WebViewClient() {
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
String[] credentials = view.getHttpAuthUsernamePassword(host, realm);
String username = credentials[0];
String password = credentials[1];
Intent i = new Intent();
i.setAction("SEND_CREDENTIALS");
i.putExtra("username", username);
i.putExtra("password", password);
view.getContext().sendBroadcast(i);
}
});
...
SEND_CREDENTIALS
receberá a mensagem. A transmissão nem mesmo é protegida com uma permissão para limitar o número de destinatários, embora, neste caso, não recomendemos o uso de permissões como correção.
localStorage.setItem('password', password);
pass = getPassword()
...
dbmsLog.println("$id:$pass:$type:$tstamp")
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
...
webview.webViewClient = object : WebViewClient() {
override fun onReceivedHttpAuthRequest(view: WebView,
handler: HttpAuthHandler, host: String, realm: String
) {
val credentials = view.getHttpAuthUsernamePassword(host, realm)
val username = credentials!![0]
val password = credentials[1]
val i = Intent()
i.action = "SEND_CREDENTIALS"
i.putExtra("username", username)
i.putExtra("password", password)
view.context.sendBroadcast(i)
}
}
...
SEND_CREDENTIALS
receberá a mensagem. A transmissão nem mesmo é protegida com uma permissão para limitar o número de destinatários, embora, neste caso, não recomendemos o uso de permissões como correção.
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
CLLocation *location = [locationManager location];
// Configure the new event with information from the location
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"dLatitude : %@", latitude);
NSLog(@"dLongitude : %@",longitude);
NSString *urlWithParams = [NSString stringWithFormat:TOKEN_URL, latitude, longitude];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlWithParams]];
[request setHTTPMethod:@"GET"];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// Add password to user defaults
[defaults setObject:@"Super Secret" forKey:@"passwd"];
[defaults synchronize];
getPassword()
que retorna a senha de texto sem formatação fornecida pelo usuário com a conta.
<?php
$pass = getPassword();
trigger_error($id . ":" . $pass . ":" . $type . ":" . $tstamp);
?>
Example 1
registra uma senha de texto sem formatação no log de eventos do aplicativo. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.OWA_SEC.get_password()
retorna a senha de texto simples fornecida pelo usuário associada à conta, que é então impressa à resposta HTTP.
...
HTP.htmlOpen;
HTP.headOpen;
HTP.title (.Account Information.);
HTP.headClose;
HTP.bodyOpen;
HTP.br;
HTP.print('User ID: ' ||
OWA_SEC.get_user_id || '');
HTP.print('User Password: ' ||
OWA_SEC.get_password || '');
HTP.br;
HTP.bodyClose;
HTP.htmlClose;
...
getPassword()
que retorna a senha de texto sem formatação fornecida pelo usuário com a conta.
pass = getPassword();
logger.warning('%s: %s %s %s', id, pass, type, tsstamp)
Example 1
registra uma senha de texto sem formatação no log de eventos do aplicativo. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.get_password()
retorna a senha de texto sem formatação fornecida pelo usuário que está associada à conta.
pass = get_password()
...
dbms_logger.warn("#{id}:#{pass}:#{type}:#{tstamp}")
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
val pass = getPassword()
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp)
Example 1
registra uma senha de texto sem formatação no sistema de arquivos. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
import CoreLocation
...
var locationManager : CLLocationManager!
var seenError : Bool = false
var locationFixAchieved : Bool = false
var locationStatus : NSString = "Not Started"
seenError = false
locationFixAchieved = false
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.locationServicesEnabled
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
...
if let location: CLLocation! = locationManager.location {
var coordinate : CLLocationCoordinate2D = location.coordinate
let latitude = NSString(format:@"%f", coordinate.latitude)
let longitude = NSString(format:@"%f", coordinate.longitude)
NSLog("dLatitude : %@", latitude)
NSLog("dLongitude : %@",longitude)
let urlString : String = "http://myserver.com/?lat=\(latitude)&lon=\(longitude)"
let url : NSURL = NSURL(string:urlString)
let request : NSURLRequest = NSURLRequest(URL:url)
var err : NSError?
var response : NSURLResponse?
var data : NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error:&err)
} else {
println("no location...")
}
let defaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
// Add password to user defaults
defaults.setObject("Super Secret" forKey:"passwd")
defaults.synchronize()
getPassword
retorna a senha de texto sem formatação fornecida pelo usuário que está associada à conta.
pass = getPassword
...
App.EventLog id & ":" & pass & ":" & type & ":" &tstamp, 4
...
Example 1
registra uma senha de texto sem formatação no log de eventos do aplicativo. Embora muitos desenvolvedores confiem no log de eventos como um local de armazenamento seguro para os dados, ele não deve ser confiado de forma implícita, especialmente quando a privacidade é uma preocupação.
...
host_name = request->get_form_field( 'host' ).
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
USER = user
PASSWORD = password
HOST = host_name
RFC_DESTINATION = 'SAPFTP'
IMPORTING
HANDLE = mi_handle
EXCEPTIONS
NOT_CONNECTED = 1
OTHERS = 2.
...
int rPort = Int32.Parse(Request.Item("rPort"));
...
IPEndPoint endpoint = new IPEndPoint(address,rPort);
socket = new Socket(endpoint.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
socket.Connect(endpoint);
...
...
char* rPort = getenv("rPort");
...
serv_addr.sin_port = htons(atoi(rPort));
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
...
...
ACCEPT QNAME.
EXEC CICS
READQ TD
QUEUE(QNAME)
INTO(DATA)
LENGTH(LDATA)
END-EXEC.
...
ServerSocket
Java e usa um número de porta lido de uma solicitação HTTP para criar um soquete.
<cfobject action="create" type="java" class="java.net.ServerSocket" name="myObj">
<cfset srvr = myObj.init(#url.port#)>
<cfset socket = srvr.accept()>
Passing user input to objects imported from other languages can be very dangerous.
final server = await HttpServer.bind('localhost', 18081);
server.listen((request) async {
final remotePort = headers.value('port');
final serverSocket = await ServerSocket.bind(host, remotePort as int);
final httpServer = HttpServer.listenOn(serverSocket);
});
...
func someHandler(w http.ResponseWriter, r *http.Request){
r.parseForm()
deviceName := r.FormValue("device")
...
syscall.BindToDevice(fd, deviceName)
}
String remotePort = request.getParameter("remotePort");
...
ServerSocket srvr = new ServerSocket(remotePort);
Socket skt = srvr.accept();
...
WebView
.
...
WebView webview = new WebView(this);
setContentView(webview);
String url = this.getIntent().getExtras().getString("url");
webview.loadUrl(url);
...
var socket = new WebSocket(document.URL.indexOf("url=")+20);
...
char* rHost = getenv("host");
...
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)rHost, 80, &readStream, &writeStream);
...
<?php
$host=$_GET['host'];
$dbconn = pg_connect("host=$host port=1234 dbname=ticketdb");
...
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM pricelist WHERE name = $1');
$result = pg_execute($dbconn, "my_query", array("ticket"));
?>
...
filename := SUBSTR(OWA_UTIL.get_cgi_env('PATH_INFO'), 2);
WPG_DOCLOAD.download_file(filename);
...
host=request.GET['host']
dbconn = db.connect(host=host, port=1234, dbname=ticketdb)
c = dbconn.cursor()
...
result = c.execute('SELECT * FROM pricelist')
...
def controllerMethod = Action { request =>
val result = request.getQueryString("key").map { key =>
val user = db.getUser()
cache.set(key, user)
Ok("Cached Request")
}
Ok("Done")
}
...
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
var inputStream : NSInputStream?
var outputStream : NSOutputStream?
...
var readStream : Unmanaged<CFReadStream>?
var writeStream : Unmanaged<CFWriteStream>?
let rHost = getQueryStringParameter(url.absoluteString, "host")
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, rHost, 80, &readStream, &writeStream);
...
}
func getQueryStringParameter(url: String?, param: String) -> String? {
if let url = url, urlComponents = NSURLComponents(string: url), queryItems = (urlComponents.queryItems as? [NSURLQueryItem]) {
return queryItems.filter({ (item) in item.name == param }).first?.value!
}
return nil
}
...
...
Begin MSWinsockLib.Winsock tcpServer
...
Dim Response As Response
Dim Request As Request
Dim Session As Session
Dim Application As Application
Dim Server As Server
Dim Port As Variant
Set Response = objContext("Response")
Set Request = objContext("Request")
Set Session = objContext("Session")
Set Application = objContext("Application")
Set Server = objContext("Server")
Set Port = Request.Form("port")
...
tcpServer.LocalPort = Port
tcpServer.Accept
...