Je lisais à propos des dépassements de tampon, de pile et de tas. J'ai lu également ce post. Ma question est la suivante : si j'utilise uniquement des variables globales dans mon code, est-ce que je peux dire que cela prévient toutes les attaques de dépassement de tampon ?
disons que j'ai ces tampons dans le code déclarés dans la portée globale :
char buf1[10];
char buf2[100];
Si j'envoie buf1
comme tampon à recv(int s, char *buf, int len,int flags);
- Je vais écraser le segment de données et je pourrais ruiner le contenu de
buf2
, non ? - Serais-je capable d'exécuter du code à partir de là car, d'après ce que je sais, ce n'est pas un segment de code et le segment de données n'est pas exécutable.
Pouvons-nous en conclure que l'utilisation des variables globales est la manière la plus sûre ?