La méthode discutée dans cet article n'a pas été appliquée dans des projets réels, car je n'ai pas rencontré de projets qui le nécessitent, mais l'expérience l'a trouvé possible.
1. Source de mes pensées
JavaScript est une bonne chose. Son apparence rend les pages Web plus vivantes. Bien sûr, les avantages ne sont pas seulement cela. Les applications populaires de l'Ajax au cours des dernières années ont fait commencer à accorder plus d'attention à l'application de la petite langue JavaScript (de nombreux experts du programme ne le considèrent pas comme une langue, tout au plus c'est un titre de script, et même les gens qui font des scripts). Désormais, de nombreux blogs ouvrent des autorisations de script sur des sites Web officiels, permettant aux utilisateurs de personnaliser des scripts pour enrichir leur espace, en particulier certains blogs professionnels techniques, qui fournissent un environnement de développement plutôt détendu. Mais nous avons également constaté que de nombreux blogs ont des restrictions sur certaines méthodes de script. Notez que je parle de restrictions partielles ici. Si ce sont toutes des restrictions, c'est très simple. Il suffit de filtrer le bloc de script <cript>, mais comment certaines restrictions sont-elles réalisées?
Parce que je n'ai pas rencontré un tel problème dans mes projets précédents, je n'ai pas fait beaucoup de recherches approfondies. Au début, j'ai juste pensé à utiliser la méthode de "remplacement" basée sur mes sentiments. De toute évidence, cette méthode ne fonctionne pas car elle peut mal tourner. Par exemple, si je souhaite désactiver la méthode d'alerte, le code suivant est disponible:
window.Alert ('un message');
Maintenant, pour rendre le code ci-dessus invalide, laissez ALERT le changer. Par exemple, changez-le en alerte Capital, qui rapportera certainement une erreur de script, mais vous pouvez toujours utiliser Try {} Catch {} pour inclure Alert, mais ceci est un autre gros problème pour la reconnaissance des packages de langage de désactivation, et il y aura une telle erreur: remplacer alert dans document.write ('alert un peu de message');
Plus tard, j'ai pensé à réécrire la méthode, à réécrire la méthode à désactiver et à ne rien faire. Le résultat s'est avéré réalisable, mais je ne sais pas s'il s'agit d'une méthode scientifique. Je vais le retirer et en discuter avec vous.
2. Implémentation spécifique
Examinons d'abord le code suivant pour désactiver les deux méthodes «alerte» et «écrire»:
window.Alert = function () {} document.write = function () {} window.alert ('alert quelque message'); document.write ('écrire un message');Cela semble vraiment simple. Dans l'application réelle, extraire les deux premières lignes séparément et les stocker dans un fichier JS externe, et charger le fichier JS en premier sur la page qui doit filtrer les méthodes JavaScript (vous pouvez également charger ce script sur la ligne précédente du bloc de contenu de l'édition de l'utilisateur, afin que notre administrateur ou notre fabricant de page Web puisse toujours utiliser la méthode qui sera désactivée dans le bloc HTML précédent). De cette façon, appeler la méthode désactivée par la suite ne fonctionnera pas.
Remarque: Enfin, je voudrais vous rappeler que vous devez également désactiver certaines méthodes de fonctionnement DOM, telles que la méthode supprime (), car les utilisateurs peuvent utiliser les méthodes de fonctionnement DOM pour supprimer le fichier JS que vous avez chargé au début.