Documentations


Qu'est-ce qu'une vulnérabilité?

Une vulnérabilité est une faille ou un trou dans une application, ce qui peut être une erreur de conception ou un bug durant l’implémentation. Elle permet à l’attaquant de nuire aux partie de l’application. Les parties de l’applications sont les propriétaires de l’application, les utilisateurs. La vulnérabilité n’est ni une attaque, ni une contremesure.

Qu'est-ce qu'une attaque ?

Les attaques sont les techniques que les attaquants emploient sur une application en présence de vulnérabilités. Avant de décrire une attaque, s’assurer qu’elle définit bien une suite d’actions.

Qu'est-ce qu'un patron de sécurité ?

Comme les patrons de conception, les patrons de sécurité sont des solutions abstraites réutilisable présentées en UML. Ils sont issus de l’expérience humaine et présentés de tel manière qu’ils peuvent utilisable par des développeurs moins expérimentés indépendamment du contexte. Au contraste avec les patrons de conception, les patrons de sécurité sont spécialisés pour les problématiques de sécurité (Authentification, Cryptographie, …).

La base des patrons de sécurité est disponible :

http://hina/~loregain/patterns/

Selenium

Exemple complet java

Commandes les plus utilisées

Le tableau suivant répertorie certaines des commandes les plus fréquemment utilisées dans WebDriver ainsi que leur syntaxe.

Commander

La description

driver.get ( "URL")

Pour accéder à une application.

element.sendKeys ( "inputtext")

Saisissez du texte dans une zone de saisie.

element.clear ()

Effacer le contenu de la zone de saisie.

select.deselectAll ()

Désélectionnez toutes les options de la première SELECT sur la page.

select.selectByVisibleText ( "texte")

Sélectionnez l'option à l'entrée spécifiée par l'utilisateur.

driver.switchTo (). fenêtre ( "windowName")

Déplacer le focus d'une fenêtre à une autre.

driver.switchTo (). cadre ( "frameName")

Balançoire d'une image à.

driver.switchTo (). alert ()

Aide dans le traitement des alertes.

driver.navigate (). à ( "URL")

Accédez à l'URL.

driver.navigate (). forward ()

Pour naviguer vers l'avant.

driver.navigate (). back ()

Pour revenir.

driver.close ()

Ferme le navigateur actuel associé au pilote.

driver.quit ()

Quitte le conducteur et ferme toute la fenêtre associée de ce pilote.

driver.refresh ()

Actualise la page en cours.


Sélénium - Locators


Sélénium - Locators

éléments de localisation en Sélénium WebDriver est réalisée avec l'aide de findElement () et findElements () méthodes fournies par WebDriver et classe WebElement.

Le tableau suivant répertorie toute la syntaxe Java pour les éléments en Sélénium WebDriver localiser.

méthode

Syntaxe

La description

Par ID

driver.findElement (By.id (<element ID>))

Repérer un élément en utilisant l'attribut ID

De nom

driver.findElement (By.name (<element name>))

Repérer un élément en utilisant l'attribut Name

Par nom de classe

driver.findElement (By.className (<classe element>))

Repérer un élément en utilisant l'attribut de classe

Par nom de tag

driver.findElement (By.tagName (<htmltagname>))

Repérer un élément en utilisant la balise HTML

Par le texte du lien

driver.findElement (By.linkText (<linktext>))

Repérer un lien en utilisant le texte du lien

Par le texte du lien partiel

driver.findElement (By.partialLinkText (<linktext>))

Repérer un lien en utilisant texte partiel du lien

Par CSS

driver.findElement (By.cssSelector (<sélecteur de css>))

Repérer un élément à l'aide du sélecteur CSS

Par XPath

driver.findElement (By.xpath (<xpath>))

Repérer un élément en utilisant XPath requête


Locators Utilisation

Maintenant, laissez-nous comprendre l'utilisation pratique de chacune des méthodes de localisation à l'aide de http://www.calculator.net

Par ID

Voici un objet est accessible à l'aide d'ID. Dans ce cas, il est l'ID de la zone de texte. Les valeurs sont entrées dans la zone de texte en utilisant la méthode sendkeys avec l'aide d'ID (cdensity).




driver.findElement(By.id("cdensity")).sendKeys("10");




De nom

Voici un objet est accessible à l'aide de noms. Dans ce cas, il est le nom de la zone de texte. Les valeurs sont entrées dans la zone de texte en utilisant la méthode sendkeys avec l'aide d'ID (cdensity).




driver.findElement(By.name("cdensity")).sendKeys("10");




Par Link Text

Cette méthode permet de localiser un élément de liaison avec correspondance texte visible.




driver.findElements(By.linkText("Volume")).click();



Qu'est-ce qu'un arbre d’attaque et de défense ?

Un arbre d’attaque et de défense est un arbre qui schématise les actions liées à une attaque. La racine de cet arbre est l’objectifs final de l’attaque (Exemple : Injection SQL), qui est spécialisé par des actions intermédiaires. Dans un arbre d’attaque et de défense on peut distinguer deux types de nœuds, les nœuds d’attaque (cercles rouges) définissent les actions menées par l’attaquant. Tant dis que les nœuds de défense (quarrés verts) définissent les actions menées par le concepteur afin de protéger l’application, dans notre expérimentation, les nœuds de défense sont des patrons de sécurité.

Figure 1 Les composants d'un arbre d'attaque et de défense

Dans un arbre d’attaque et de défense, les nœuds son liés avec trois types d’opérateurs (voire la figure 1), on peut distinguer l’opérateur ‘’Or’’ pour présenter une disjonction, ‘’And’’ pour la conjonction. L’opérateur avec une tête fléché présente une exécution dans l’ordre de gauche à droite. Une action B qui suit une action A n’est valide que si l’action A est effectuée.

Pour cette expérimentation, la structure de l’arbre est décomposée en quatre niveaux :

Pour chaque étape de l’attaque on peut distinguer deux types de nœuds dans le niveau 4



ADtree of CAPEC-66 Sql injection

ADTree of CAPEC-244 Cross site scripting