Maison  >  Article  >  Résumé des 10 principales questions d'entretien liées à l'expérience en sécurité PHP

Résumé des 10 principales questions d'entretien liées à l'expérience en sécurité PHP

PHP中文网
PHP中文网original
2018-06-04 20:23:0711021parcourir

Recommandations associées : "Résumé des questions d'entretien PHP 2019 (collection) "

1 La base de données MySQL est utilisée comme stockage des système de publication , l'augmentation de plus de 50 000 articles par jour devrait représenter trois années d'exploitation et de maintenance. Comment l'optimiser ?

a. Concevez une structure de base de données bien conçue, autorisez une redondance partielle des données et essayez d'éviter les requêtes de jointure pour améliorer l'efficacité.
b. Sélectionnez le type de données de champ de table et le moteur de stockage appropriés, et ajoutez les index de manière appropriée.
c. Séparation maître-esclave de la bibliothèque MySQL en lecture et en écriture.
d. Recherchez des tables normales et réduisez la quantité de données dans une seule table pour améliorer la vitesse des requêtes.
e. Ajoutez des mécanismes de mise en cache, tels que memcached, apc, etc.
f. Pour les pages qui ne changent pas fréquemment, générez des pages statiques.
g. Écrivez du SQL efficace. Par exemple, SELECT * FROM TABEL est remplacé par SELECT field_1, field_2, field_3 FROM TABLE.

2 Pour un site Web à fort trafic, quelle méthode utilisez-vous pour résoudre le problème des statistiques de visites de pages

a. Confirmez si le serveur peut prendre en charge le trafic actuel.
b. Optimiser l'accès à la base de données.
c. Interdire l'accès externe aux liens (hotlinking), comme le hotlinking d'images.
d. Contrôler les téléchargements de fichiers.
e. Utilisez différents hôtes pour répartir le trafic.
f. Utiliser un logiciel de statistiques de navigation pour comprendre le nombre de visites et réaliser une optimisation ciblée.

3 Écrivez une expression régulière pour filtrer tous les scripts JS/VBS sur la page Web (c'est-à-dire supprimer les balises et leur contenu)

Réponse :

PHP

/<[^>].*?>.*?<\/>/si

4 Utilisez PHP pour imprimer l'heure de la veille. Le format est 2006-5-10 22:21:21

Réponse : echo date(. 'Y-m-d H:i: s', strtotime('-1 day'));

5 La différence entre echo(), print() et print_r()

Réponse : echo est une structure de langage et n'a pas de valeur de retour ; La fonction print est fondamentalement la même que echo La différence est que print est une fonction avec une valeur de retour ; print_r est une impression récursive, utilisée pour générer des objets tableau

6. Comment implémenter le retournement de chaîne ?

Réponse : utilisez la fonction strrev. Vous n'êtes pas autorisé à utiliser celle intégrée à PHP, écrivez-la simplement vous-même :

strrev($str)  
{  
    $len=strlen($str);  
    $newstr = &#39;&#39;;  
    for($i=$len;$i>=0;$i--)  
    {  
        $newstr .= $str{$i};  
    }  
    return $newstr;  
}

7 Une méthode pour intercepter. Chaînes de texte chinois sans caractères tronqués.

Réponse : mb_substr()

8 Comment utiliser les variables d'environnement PHP pour obtenir le contenu d'une adresse de page web ? Comment avoir l'adresse IP ?

Réponse : $_SERVSR['REQUEST_URI'], $_SERVER['REMOTE_ADDR']

9 Trouvez la différence entre deux dates, comme le 2007-2-5 ~ La différence de date du 6-3-2007

Réponse : (strtotime('2007-3-6')-strtotime('2007-2-5'))/3600*24

10 Comment déterminer si une fenêtre a été bloquée via javascript

Réponse : obtenez la valeur de retour d'open() Si elle est nulle, cela signifie qu'elle est bloquée<.>

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn