


Une brève analyse de la dernière vulnérabilité d'injection SQL dans le framework PHP Laravel
Laravel, le framework de développement PHP bien connu, a précédemment signalé une vulnérabilité d'injection SQL à haut risque sur le blog officiel. Voici une brève analyse.
Tout d'abord, cette vulnérabilité appartient au codage irrégulier du site Web. Le responsable a donné un indice :
Illuminate\Validation\RuleLa méthode d'écriture officiellement recommandée est :
Rule::unique('users')->ignore($id),Si le codage du site Web ne traite pas la valeur de $id à l'avance, l'utilisateur peut transmettez-le directement Donner des données malveillantes à la fonction ignore provoquera une injection SQL. Suivons la fonction :
\Illuminate\Validation\Rules\Unique.php class Unique { ... public function ignore($id, $idColumn = null) { if ($id instanceof Model) { return $this->ignoreModel($id, $idColumn); } $this->ignore = $id; $this->idColumn = $idColumn ?? 'id'; return $this; }Ici nous n'envisageons pas d'écrire $id comme une instance Si $id est contrôlable par l'utilisateur, $idColumn peut être écrit directement comme vide, et enfin. attribué La situation est la suivante :
$this->ignore = $id; $this->idColumn = 'id';Si le code du site Web est structuré ainsi, la valeur saisie par le hacker est contrôlable :
$id = $request->input('id');Enfin, nous arriverons ici :
Illuminate\Validation\Rules\Unique.php public function __toString() { ... ... }Nous examinons les modifications du code clé :
Illuminate\Validation\Rules\Unique.php V5.8.7【最新版】 public function __toString() { $this->ignore ? '"'.addslashes($this->ignore).'"' : 'NULL', } Illuminate\Validation\Rules\Unique.php V5.8.4 public function __toString() { $this->ignore ? '"'.$this->ignore.'"' : 'NULL', }Le dernier code ici est la v5.8.7, qui donne directement $this->ignore aux addlashes. Il n'y avait aucune protection ici auparavant. Ce qui est intéressant, c'est que l'auteur a comparé les diffs, au cours desquels le responsable a également essayé de filtrer d'autres lieux cités. Enfin, un filtrage unifié a été effectué sur __toString. Enfin, le code suivant entrera dans DatabaseRule pour la correspondance ultérieure des règles SQL.
Illuminate\Validation\Rules\DatabaseRule.phpIl n'y a eu aucun autre traitement après cela et une injection SQL a été formée. Pour plus d'articles techniques liés à Laravel, veuillez visiter la colonne
Tutoriel d'introduction au framework Laravel pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

L'édition de documents collaborative est un outil efficace pour les équipes distribuées afin d'optimiser leurs workflows. Il améliore la communication et les progrès du projet grâce à des boucles de collaboration et de rétroaction en temps réel, et les outils communs incluent Google Docs, Microsoft Teams et Notion. Faites attention à des défis tels que le contrôle des versions et la courbe d'apprentissage lorsque vous l'utilisez.

ThepreviousVersionofLaraveLissupported withbugfixesforsixmonthsandSecurityFixesForoneyEarfteranEwmaJorversion'srelease.Croite-compritsThisSupporttimelineScricialForPlanningUpgrades, assurant la mise en place de la stabilité et la mise en place des éléments et les économies de lamence, et la stabilité et la conduite de la rémunération et la santé

LaravelCanBeefectively UsedForBothFronttendandBackendDevelopment.1) Backend: Utilizelaravel'SeloventormforsImpplifiedDatabaseInteractions.2) Frontend: LefetherBlatemplateForCleanhtmland Integratevue.jsfordynamicsPas, STANDSEANSHEST-BACKENDINTEG.

LaravelCanBeusedFullLStackDevelopment.1) BackendmasteryWithLaravel'SexpressivesYntaxAndFeaturesLILLICYELOQUENTormfordatabasemanagement.2)

Réponse: Les meilleurs outils pour la mise à niveau de Laravel incluent le guide de mise à niveau de Laravel, Laravelshift, Rector, Composer et Laravelpint. 1. Utilisez le guide de mise à niveau de Laravel comme feuille de route de mise à niveau. 2. Utilisez Laravelshift pour automatiser la plupart des travaux de mise à niveau, mais cela nécessite un examen manuel. 3. Refacteur automatiquement le code via le recteur, et vous devez comprendre et éventuellement personnaliser ses règles. 4. Utilisez le compositeur pour gérer les dépendances et faire attention aux éventuels conflits de dépendance. 5. Exécutez Laravelpint pour maintenir la cohérence du style de code, mais il ne résout pas les problèmes fonctionnels.

ToenhanceengagementAndCoheSionAmongDstributedTeamsBeyondzoom, implémentations de typeStrates: 1) OrganizeVirtualCoffeebreaksForInformalChats, 2) usEasynchronousToolSlikeslackFornon-Workdissions, 3) IntrodugamificationwithTeamGamesorChallengs, and4) encourage

Laravel10 introducesseveralBreakingChanges: 1) itRequiresphp8.1orHigher, 2) theRouserviceProviderNowUSESABOOTMethodForLoadingRoutes, 3) thewithetimestamps () MethodonEloventrelationShipSepresecated, and4) CLASSNOWPRES

TOMAINTAINFOCUSANDMOTIVATIONINREMOTEWork, CreateAstructuredenvironment, GestiondigitalDistractions, FosterMotivation ThroughsocialInteractions et legoalseting, maintien de la vie de vie et usureAppropriateTechnology.1) SetUpadediatedWorkspace andstickToaroutine.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),
