Web

Registro de cambios 

[0.1.4] - 2024-02-19 - 2024-08-22

Agregado 

  • Se ha implementado un nuevo método, para determinar si el navegador se está ejecutando en modo incógnito o no.

Cambiado 

Eliminado 

[0.1.3] - 2023-12-18 - 2024-02-19

Agregado 

  • Añadidas cookies para una mejor identificación del dispositivo

Cambiado 

  • Detección de navegador mejorada (Opera y Brave)

Eliminado 

[0.1.2] - 2023-10-26 - 2023-12-18

Agregado

Cambiado

  • Mejora gestión de errores
  • Mejora detección versiones de windows

Eliminado

[0.1.1] - 2023-07-21 - 2023-10-26 

Agregado 

Cambiado 

  • SDK ofuscada.

Eliminado 

[0.1.0] - 2023-02-22 - 2023-07-21 

Agregado 

  • Primera versión del WEB SDK

Cambiado

Eliminado 

Configuración 

¿Qué es el SDK Web? 

LBFraud web SDK es la pieza que permite integrar Ironchip LBFraud en tu página web. Usandolo, Ironchip es capaz de evaluar si el dispositivo y el entorno son seguros para operar en la web. Para añadir el SDK en tu web solo hay que seguir los siguientes pasos:.

Browser Minimum Tested Version
Chrome 68.0.3440.91
Firefox 60.0
Mobile Safari 12.1.2
Brave 119.0.0.0
Edge 97.0.1072.62
Opera 95.0.0.0
Chromium 76.0.3809.100
Chrome WebView 84.0.4147.89
GSA (Google Search App) 130.0.337455237
DuckDuckGo 5
Silk 108.7.2
Samsung Browser 17.0
PaleMoon 32.2.0
Avast Secure Browser 109.0.24252.121
Huawei Browser 12.1.3.304
MIUI Browser 10.9.8
Yandex 24.9.1.56.00
Whale 3.4.5.2

Integración JavaScript 

Esta integracion se puede realizar en un archivo JavaScript o directamente en el HTML entre los tags script. Recomendamos utilizarnos en JavaScript y ofuscarlo siempre.

Añade el paquete de Node.js:

npm i https://github.com/Ironchip-Security/Ironchip-Fraud-Detection-Web-SDK/releases/download/{VERSION}/ironchip-fraud-detection-web-sdk-{VERSION}.tgz

npm i https://github.com/Ironchip-Security/Ironchip-Fraud-Detection-Web-SDK/releases/download/0.1.4/ironchip-fraud-detection-web-sdk-0.1.4.tgz

Importa el paquete:

//Importa la libreria de lbfraud

import { LBFraudSDK,LBFraudSDKEnvironment } from 'ironchip-fraud-detection-web-sdk';

Después, con el SDK importado tienes que inicializar el cliente. Por favor, asegurate de tener tu API-Key y el entorno en el que vas a trabajar a mano. Por defecto el entorno seleccionado es el de Producción.

Vamos a inicializar el SDK (Solo acepta un único entorno como parámetro de entrada):

const client = new LBFraudSDK({
apiKey: 'api-key',
environment: LBFraudSDKEnvironment.Development,
LBFraudSDKEnvironment.Testing,
LBFraudSDKEnvironment.Production,
});

Recomendamos que esta parte del código vaya ofuscada, ya que contiene el API-Key.

 
Uso 

Con el cliente inicializado para hacer transacciones solo tienes que llamar al metodo.

Al metodo sendTransaction tienes que pasarle como parametros de entrada la ID de transcción y la ID de usuario.

client
.sendTransaction(transactionID, userID)

Eso es todo. Cada vez que se llame al metodo enviará una transacción.

Ejemplo

test.js

import { LBFraudSDK, LBFraudSDKEnvironment } from 'ironchip-fraud-detection-web-sdk';

const client = new LBFraudSDK({
apiKey: 'api-key', // Reemplaza 'api-key' con tu clave API real
environment: LBFraudSDKEnvironment.Testing
});

const myButton = document.getElementById('myButton');

// Función para recortar, convertir a minúsculas y hash el userID
async function anonymizeUserID(userID) {
const trimmedLowercaseUserID = userID.trim().toLowerCase();
const hashedUserID = await sha256Hash(trimmedLowercaseUserID);
return hashedUserID;
}

// Función para realizar hashing usando SHA-256
async function sha256Hash(text) {
const encoder = new TextEncoder();
const data = encoder.encode(text);
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}

// Función simulada para realizar el inicio de sesión
async function performLogin(username, password) {
// Simular un retraso de 2 segundos para la autenticación
await new Promise(resolve => setTimeout(resolve, 2000));

// Modificación: siempre devuelve true
return true; // Cambia esto si necesitas que la lógica real de inicio de sesión funcione
}

function setListener() {
myButton.onclick = async function() {
const transactionID = document.getElementById('transactionId').value;
const userID = document.getElementById('userId').value;

// Simular la entrada del usuario para el inicio de sesión
const username = 'testuser'; // Reemplaza con el valor real
const password = 'testpassword'; // Reemplaza con el valor real

const loginSuccessful = await performLogin(username, password);

if (loginSuccessful) {
// Si el inicio de sesión es exitoso, anonimiza el userID antes de enviar la transacción
const anonymizedUserID = await anonymizeUserID(userID);

// Enviar la transacción
client
.sendTransaction(transactionID, anonymizedUserID)
.then((success) => {
console.log('Transacción exitosa:', success);
})
.catch((errorMsg) => {
console.log('Error durante la transacción:', errorMsg);
});
} else {
// Agrega aquí cualquier código que quieras ejecutar en caso de un error durante la transacción.
}
}
}

window.onload = function() {
setListener();
}

index.html

<!DOCTYPE html>
<html>
<head>
<title>Web SDK test</title>
</head>
<body>
<label for="transactionId">Transaction ID:</label>
<input type="text" id="transactionId" name="transactionId">

<label for="userId">User ID:</label>
<input type="text" id="userId" name="userId">

<button id="myButton">Send transaction</button>

<script type="module" src="test.js"></script>
</body>
</html>

index.html

<!DOCTYPE html>
<html>
<head>
<title>Web SDK test</title>
</head>
<body>
<label for="transactionId">Transaction ID:</label>
<input type="text" id="transactionId" name="transactionId">

<label for="userId">User ID:</label>
<input type="text" id="userId" name="userId">

<button id="myButton">Enviar Transacción</button>

<script type="module" src="test.js"></script>
</body>
</html>

Documentación adicional

Para utilizar correctamente el SDK, es necesario activar el permiso de ubicación.

En Safari si tu navegador no muestra el modal para permitirlo, es necesario activarlo, para ello sigue los siguientes pasos:

  • En su Mac, elija el menú Apple > Ajustes del sistema, haga clic en Privacidad y seguridad en la barra lateral y haga clic en Localización a la derecha.
  • Active los Servicios de ubicación para Safari en la lista de la derecha.