...
contraseña = '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.
MUEVA "tiger" A CONTRASEÑA
EXEC SQL
CONNECT :UID
IDENTIFICADO POR :CONTRASEÑA
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 acceder al código desensamblado, que contendrá los valores de las contraseñas utilizadas. El resultado de esta operación puede presentar un aspecto similar al siguiente en relación con el 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
contraseña := "letmein"
...
response.SetBasicAuth(usrName, password)
...
DriverManager.getConnection(url, "scott", "tiger");
...
javap -c
para acceder al código desensamblado, que contendrá los valores de las contraseñas utilizadas. El resultado de esta operación puede presentar un aspecto similar al siguiente en relación con el 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
, este código se ejecutará correctamente, pero cualquiera que tenga acceso a él, tendrá acceso a la contraseña.
...
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 acceder al código desensamblado, que contendrá los valores de las contraseñas utilizadas. El resultado de esta operación puede presentar un aspecto similar al siguiente en relación con el 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
, este código se ejecutará correctamente, pero cualquiera que tenga acceso a él, tendrá acceso a la contraseña.
...
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
contraseña VARCHAR(20);
BEGIN
contraseña := "tiger";
END;
contraseña := "tiger"
...
response.writeln("Password:" + contraseña)
...
Mysql.new(URI(hostname, 'scott', 'tiger', databasename)
...
...
ws.url(url).withAuth("john", "secret", WSAuthScheme.BASIC)
...
javap -c
para acceder al código desensamblado, que contendrá los valores de las contraseñas utilizadas. El resultado de esta operación puede presentar un aspecto similar al siguiente en relación con el 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
pueden poner en peligro la seguridad.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
var storedPassword:String = null;
var temp:String;
if ((temp = readPassword()) != null) {
storedPassword = temp;
}
if(Utils.verifyPassword(userPassword, storedPassword))
// Access protected resources
...
}
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para userPassword
.null
a las variables de contraseña nunca es una buena idea, ya que puede permitir que los atacantes eludan la verificación de contraseña o puede indicar que una contraseña vacía protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if (Utils.VerifyPassword(storedPassword, userPassword)) {
// Access protected resources
...
}
...
ReadPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir fácilmente la comprobación de contraseña si proporciona un valor null
para userPassword
.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}
...
ReadPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para userPassword
.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
char *stored_password = NULL;
readPassword(stored_password);
if(safe_strcmp(stored_password, user_password))
// Access protected resources
...
}
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para user_password
.null
a las variables de contraseña nunca es una buena idea, ya que puede permitir que los atacantes eludan la verificación de contraseña o puede indicar que una contraseña vacía protege los recursos.null
a las variables de contraseña no es una buena idea ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
String storedPassword = null;
String temp;
if ((temp = readPassword()) != null) {
storedPassword = temp;
}
if(Utils.verifyPassword(userPassword, storedPassword))
// Access protected resources
...
}
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para userPassword
.null
, lee credenciales de un almacén WebView de Android si el servidor no las rechazó previamente para la solicitud actual y las usa para configurar la autenticación para ver 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
, si useHttpAuthUsernamePassword()
devuelve false
, un usuario malintencionado podrá ver páginas protegidas si proporciona una contraseña null
.null
.null
:
...
var password=null;
...
{
password=getPassword(user_data);
...
}
...
if(password==null){
// Assumption that the get didn't work
...
}
...
null
a las variables de contraseña, ya que puede permitir que los atacantes eludan la verificación de contraseña o puede indicar que ninguna contraseña protege los recursos.null
.
{
...
"password" : null
...
}
null
. Las contraseñas Null
pueden poner en peligro la seguridad.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
NSString *stored_password = NULL;
readPassword(stored_password);
if(safe_strcmp(stored_password, user_password)) {
// Access protected resources
...
}
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para user_password
.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
<?php
...
$storedPassword = NULL;
if (($temp = getPassword()) != NULL) {
$storedPassword = $temp;
}
if(strcmp($storedPassword,$userPassword) == 0) {
// Access protected resources
...
}
...
?>
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para userPassword
.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
.
DECLARE
contraseña VARCHAR(20);
BEGIN
contraseña := null;
END;
null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
storedPassword = NULL;
temp = getPassword()
if (temp is not None) {
storedPassword = temp;
}
if(storedPassword == userPassword) {
// Access protected resources
...
}
...
getPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para userPassword
.nil
a las variables de contraseña no es una buena idea ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.nil
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
@storedPassword = nil
temp = readPassword()
storedPassword = temp unless temp.nil?
unless Utils.passwordVerified?(@userPassword, @storedPassword)
...
end
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para @userPassword
.nil
como valor predeterminado de la contraseña cuando no se especifica ninguno. En este caso, también debe asegurarse de que se especifica el número correcto de argumentos para garantizar que la contraseña se pasa a la función.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los atacantes omitan la verificación por contraseña o podría indicar que los recursos están protegidos por una contraseña vacía.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
ws.url(url).withAuth("john", null, WSAuthScheme.BASIC)
...
null
. Las contraseñas Null
pueden poner en peligro la seguridad.nil
a las variables de contraseña no es una buena idea ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
, intenta leer un valor almacenado para la contraseña y lo compara con un valor proporcionado por el usuario.
...
var stored_password = nil
readPassword(stored_password)
if(stored_password == user_password) {
// Access protected resources
...
}
...
readPassword()
no puede recuperar la contraseña almacenada debido a un error de base de datos o a algún otro problema, un atacante podría eludir trivialmente la comprobación de contraseña si proporciona un valor null
para user_password
.null
a las variables de contraseña no es una buena idea, ya que puede permitir que los usuarios malintencionados omitan la verificación de contraseña o podría indicar que una contraseña en blanco protege los recursos.null
y la utiliza para conectarse a una base de datos.
...
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
es correcto, indica que la cuenta de usuario de base de datos "scott" se ha configurado con una contraseña vacía, que un usuario malintencionado puede adivinar fácilmente. Una vez que se haya distribuido el programa, actualizar la cuenta para que utilice una contraseña que no esté vacía requerirá un cambio 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
puede leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
...
string value = regKey.GetValue(passKey).ToString());
byte[] decVal = Convert.FromBase64String(value);
NetworkCredential netCred =
new NetworkCredential(username,decVal.toString(),domain);
...
password
. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el 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
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
...
01 REGISTRO X.
05 UID PIC X(10).
05 CONTRASEÑA IMAGEN X(10).
05 LEN IMAGEN S9(4) COMP.
...
EXEC CICS
READ
FILE('CFG')
EN(REGISTROX)
RIDFLD(ACCTNO)
...
END-EXEC.
LLAME "g_base64_decode_inplace" usando
POR CONTRASEÑA DE REFERENCIA
POR LEN DE REFERENCIA
EN EXCEPCIÓN
VISUALICE "Requires GLib library" FINALICE VISUALIZACIÓN
FINALIZAR LLAMADA.
EXEC SQL
CONNECT :UID
IDENTIFICADO POR :CONTRASEÑA
END-EXEC.
...
CFG
puede leer el valor de la contraseña y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el 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
podrá leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
...
<beans:bean id="encoder" class="org.springframework.security.crypto.password.Md4PasswordEncoder"/>
...
config.properties
puede leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
...
obj = new XMLHttpRequest();
obj.open('GET','/fetchusers.jsp?id='+form.id.value,'true','scott','tiger');
...
plist
y la utiliza para descomprimir un archivo protegido con contraseña.
...
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
puede leer el valor de encoded_password
y determinar fácilmente que el valor se ha establecido con la codificación base64.
...
$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
puede leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
...
props = os.open('config.properties')
password = base64.b64decode(props[0])
link = MySQLdb.connect (host = "localhost",
user = "testuser",
passwd = password,
db = "test")
...
config.properties
puede leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.
require 'pg'
require 'base64'
...
passwd = Base64.decode64(ENV['PASSWD64'])
...
conn = PG::Connection.new(:dbname => "myApp_production", :user => username, :password => passwd, :sslmode => 'require')
PASSWD64
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el 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
puede leer el valor de password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el sistema.plist
y la utiliza para descomprimir un archivo protegido con contraseña.
...
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
puede leer el valor de encoded_password
y determinar fácilmente que el valor se ha establecido con la codificación base64.
...
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
puede leer el valor de Password
y determinar fácilmente que el valor se ha establecido con la codificación base64. Un empleado malintencionado con acceso a esta información puede utilizarla para irrumpir en el 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
", la aplicación eliminará un archivo crítico e inmediatamente se bloqueará el 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
" en lugar de una fecha válida, la aplicación revelará la configuración predeterminada de todos los parámetros del perfil de servidor de aplicaciones de SAP, lo que posiblemente conduciría a ataques más sofisticados.../../tomcat/conf/server.xml
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza la entrada desde un archivo de configuración para determinar qué archivo abrir y escribir en una consola de depuración o en un archivo de registro. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
", lo que hará que la aplicación elimine un archivo importante del sistema de Windows.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con privilegios adecuados y los usuarios malintencionados pueden modificar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión ".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 provocará que la aplicación elimine el archivo de configuración especificado.Ejemplo 2: el código siguiente utiliza entrada de la línea de comandos para determinar qué archivo abrir y reenviar al usuario. Si el programa se ejecuta con privilegios adecuados y los usuarios malintencionados pueden crear vínculos simbólicos al archivo, estos también pueden usar el programa para leer la primera parte de cualquier archivo del 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
", lo que hará que la aplicación elimine un archivo importante del sistema de 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
, no se valida headers.value('path')
antes de llevar a cabo las funciones de eliminación en archivos.../../tomcat/conf/server.xml
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: El siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y devolver al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos pueden utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
a la plataforma Android.
...
String rName = this.getIntent().getExtras().getString("reportName");
File rFile = getBaseContext().getFileStreamPath(rName);
...
rFile.delete();
...
../../tomcat/conf/server.xml
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el código siguiente utiliza entrada del almacenamiento local para determinar qué archivo abrir y devolver al usuario. Si los usuarios maliciosos pueden cambiar el contenido del almacenamiento local, pueden utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
...
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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: El siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y devolver al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos pueden utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
a la 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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
$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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
", lo que podría causar que la aplicación eliminase uno de sus propios archivos de configuración.Ejemplo 2: el siguiente código utiliza una entrada de un archivo de configuración para determinar el archivo que se debe abrir y reenviar al usuario. Si el programa se ejecuta con los privilegios adecuados y los usuarios malintencionados pueden cambiar el archivo de configuración, estos podrán utilizar el programa para leer cualquier archivo del sistema que termine con la extensión
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
, no se valida entry.FullName
antes de llevar a cabo las operaciones de lectura/escritura en los datos de la entrada. Si el archivo zip se colocase originalmente en el directorio "C:\TEMP
", un nombre de entrada de zip incluyera "segmentos ..\
"; y la aplicación se ejecutase con los permisos necesarios, dicho archivo podría sobrescribir arbitrariamente archivos de 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
, no se valida f.Name
antes de llevar a cabo las funciones de lectura/escritura en los datos de la entrada. Si el archivo zip se encontrase originalmente en el directorio "/tmp/
" de un equipo basado en Unix, una entrada ZIP fuese "../etc/hosts
" y la aplicación se ejecutase con los permisos necesarios, se sobrescribiría el archivo hosts
del sistema. A su vez, esto permitiría que el tráfico del equipo fuese donde el usuario malintencionado desease, por ejemplo, a su propio equipo.
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
, no se valida zipEntry.getName()
antes de llevar a cabo las funciones de lectura/escritura en los datos de la entrada. Si el archivo zip se encontrase originalmente en el directorio "/tmp/
" de un equipo basado en Unix, una entrada ZIP fuese "../etc/hosts
" y la aplicación se ejecutase con los permisos necesarios, sobrescribiría el archivo hosts
del sistema. A su vez, esto permitiría que el tráfico del equipo fuese donde el usuario malintencionado desease, por ejemplo, a su propio equipo.
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
, no se valida entry.fileName
antes de llevar a cabo las funciones de lectura/escritura en los datos de la entrada. Si el archivo zip se encontrase originalmente en el directorio "Documents/hot_patches
" de una aplicación iOS, y una entrada ZIP fuese "../js/page.js
", dicho archivo podría sobrescribir el archivo page.js
. Esto, a su vez, permitiría al atacante inyectar código malicioso que podría dar lugar a la ejecución 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()
Ejemplo 2: El siguiente ejemplo extrae archivos de un archivo zip y los escribe en el disco de forma insegura.
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
, no se valida entry.getName
antes de llevar a cabo las funciones de lectura/escritura en los datos de la entrada. Si el archivo zip se encontrase originalmente en el directorio "/tmp/
" de un equipo basado en Unix, una entrada ZIP fuese "../etc/hosts
" y la aplicación se ejecutase con los permisos necesarios, sobrescribiría el archivo hosts
del sistema. A su vez, esto permitiría que el tráfico del equipo fuese donde el usuario malintencionado desease, por ejemplo, a su propio equipo.
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
, no se valida entry.fileName
antes de llevar a cabo las funciones de lectura/escritura en los datos de la entrada. Si el archivo zip se encontrase originalmente en el directorio "Documents/hot_patches
" de una aplicación iOS, y una entrada ZIP fuese "../js/page.js
", dicho archivo podría sobrescribir el archivo page.js
. Esto, a su vez, permitiría al atacante inyectar código malicioso que podría dar lugar a la ejecución de código.
...
uid = 'scott'.
contraseña = 'tiger'.
WRITE: / 'Default username for FTP connection is: ', uid.
ESCRIBA: / 'Default password for FTP connection is: ', contraseña.
...
pass = getPassword();
...
trace(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
...
ResetPasswordResult passRes = System.resetPassword(id1, true);
System.Debug('New password: '+passRes.getPassword());
...
pass = GetPassword();
...
dbmsLog.WriteLine(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.get_password()
devuelve la contraseña de texto sin formato que ha suministrado el usuario asociada a la cuenta.
pass = get_password();
...
fprintf(dbms_log, "%d:%s:%s:%s", id, pass, type, tstamp);
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para todos los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
...
MOVE "scott" TO UID.
MUEVA "tiger" A CONTRASEÑA
DISPLAY "Default username for database connection is: ", UID.
VISUALICE "Default password for database connection is: ", CONTRASEÑA.
...
Session.pword
contiene la contraseña de texto sin formato asociada a la cuenta.
<cflog file="app_log" application="No" Thread="No"
text="#Session.uname#:#Session.pword#:#type#:#Now()#">
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
var pass = getPassword();
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.GetPassword()
, que devuelve la contraseña en texto sin formato que ha suministrado el usuario asociada a la cuenta.
pass = GetPassword();
...
if err != nil {
log.Printf('%s: %s %s %s', id, pass, type, tsstamp)
}
Example 1
registra una contraseña de texto sin formato en el registro de eventos de la aplicación. Aunque muchos desarrolladores confían en el registro de eventos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
pass = getPassword();
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp);
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
...
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
recibirá el mensaje. La difusión ni siquiera está protegida con un permiso para limitar el número de destinatarios, aunque en este caso no recomendamos el uso de permisos como solución.
localStorage.setItem('password', password);
pass = getPassword()
...
dbmsLog.println("$id:$pass:$type:$tstamp")
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
...
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
recibirá el mensaje. La difusión ni siquiera está protegida con un permiso para limitar el número de destinatarios, aunque en este caso no recomendamos el uso de permisos como solución.
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 devuelve la contraseña en texto sin formato que ha suministrado el usuario asociada a la cuenta.
<?php
$pass = getPassword();
trigger_error($id . ":" . $pass . ":" . $type . ":" . $tstamp);
?>
Example 1
registra una contraseña de texto simple en el registro de eventos de la aplicación. Aunque muchos desarrolladores confían en el registro de eventos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.OWA_SEC.get_password()
devuelve la contraseña de texto simple proporcionada por el usuario asociada a la cuenta, que se imprime a continuación en la respuesta 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 devuelve la contraseña en texto sin formato que ha suministrado el usuario asociada a la cuenta.
pass = getPassword();
logger.warning('%s: %s %s %s', id, pass, type, tsstamp)
Example 1
registra una contraseña de texto simple en el registro de eventos de la aplicación. Aunque muchos desarrolladores confían en el registro de eventos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.get_password()
devuelve la contraseña de texto sin formato que ha suministrado el usuario asociada a la cuenta.
pass = get_password()
...
dbms_logger.warn("#{id}:#{pass}:#{type}:#{tstamp}")
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
val pass = getPassword()
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp)
Example 1
registra una contraseña de texto sin formato en el sistema de archivos. Aunque muchos desarrolladores confían en el sistema de archivos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
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
devuelve la contraseña de texto sin formato que ha suministrado el usuario asociada a la cuenta.
pass = getPassword
...
App.EventLog id & ":" & pass & ":" & type & ":" &tstamp, 4
...
Example 1
registra una contraseña de texto simple en el registro de eventos de la aplicación. Aunque muchos desarrolladores confían en el registro de eventos como una ubicación segura de almacenamiento para los datos, el usuario no debería confiar absolutamente, en especial, cuando la privacidad es una preocupación.
...
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
de Java y utiliza un número de puerto que se lee de una solicitud HTTP para crear un socket.
<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
...