Considérations relatives au développement de la sécurité des applications


Le département de sécurité de Sina s'est engagé à promouvoir la sécurité des produits sur les plateformes ouvertes afin que les applications Weibo offrent une meilleure expérience utilisateur et des fonctions plus sécurisées. À en juger par la situation actuelle, nous avons constaté que certaines applications présentent les vulnérabilités ou défauts de sécurité courants suivants. En plus d'affecter l'application elle-même, ces vulnérabilités de sécurité entraîneront également des pertes pour les utilisateurs.

fuite du secret de l'application

app_secret est la seule authentification permettant à l'application de demander à la plate-forme ouverte de générer un access_token. Le but de l'utilisation de app_secret est de garantir que l'application est utilisée par le développeur lui-même.


Différentes applications ont des ressources d'appel d'interface et des autorisations API différentes sur la plate-forme ouverte. Si les ressources de l'interface de l'application sont détournées et que des opérations malveillantes telles que la publication d'informations de spam et l'ajout d'attention sont effectuées, la plate-forme ouverte restreindra les ressources et les autorisations de l'application, ce qui affectera directement les appels API normaux de l'application. Par conséquent, il est nécessaire que les développeurs protègent la sécurité de leurs propres applications et empêchent que les ressources de sécurité correspondantes soient utilisées illégalement, afin de garantir le fonctionnement normal des applications.


Il est recommandé de sauvegarder le secret de l'application sur le serveur d'applications Afin de mieux protéger la sécurité de votre application, il est recommandé de lier l'adresse IP du serveur d'application dans les paramètres du centre de gestion/sécurité.


anquan1.png


Si vous constatez que le secret de votre application a été divulgué, veuillez vous rendre au centre de gestion des applications pour le réinitialiser immédiatement http://open.weibo.com/apps/


Raisons courantes des fuites de secrets d'application :

1. Le secret de l'application apparaît dans le code source ou l'URL de la page, qui peut être obtenu en visualisant directement le code source.

2. L'app_secret est enregistré dans le programme client lui-même, et toutes les applications natives (telles que les applications de bureau iOS, Android ou Windows) peuvent être obtenues par code décompilé.

3. Le protocole de transmission sécurisé HTTPS n'est pas utilisé et l'attaquant l'obtient via le reniflage du réseau.

access_token fuite

access_token est l'identifiant de session utilisé par les utilisateurs pour accéder à la plateforme ouverte via des applications. Les applications doivent être protégées pour éviter qu'elles ne soient volées par des tiers.


Moyens courants de fuite d'access_token :

1. Access_token est stocké dans les cookies ou le code de la page, et les attaquants volent les jetons des utilisateurs via des vulnérabilités XSS.

2. Le serveur d'applications présente une vulnérabilité d'injection SQL, provoquant une fuite des jetons utilisateur.


Vulnérabilité CSRF dans la liaison des utilisateurs Weibo

Si votre application possède son propre système de compte et a pour fonction de lier les utilisateurs Weibo à se connecter, veuillez vérifier si l'interface de liaison a la fonction d'empêcher les attaques CSRF. Le paramètre d'état de l'interface d'autorisation peut être utilisé pour empêcher les attaques CSRF pendant le processus d'autorisation. Pour une utilisation détaillée, veuillez vous référer à la dernière version du code du SDK, https://github.com/ElmerZhang/WeiboSDK.

Suivez et publiez les vulnérabilités CSRF sur Weibo

Pour plus d'informations sur les vulnérabilités CSRF, veuillez vous référer ici. http://baike.baidu.com/view/1609487.htm


Les vulnérabilités CSRF dans les applications Weibo se trouvent généralement dans l'écriture d'interfaces telles que l'ajout d'abonnés et la publication sur Weibo. Ce que les utilisateurs voient, c'est qu'il y a des choses inexplicables sur Weibo. . J'ai suivi ou transféré certaines publications marketing sur Weibo.


Les développeurs peuvent empêcher les attaques CSRF en vérifiant si le référent est légal ou en ajoutant csrf_token au formulaire.

Faux d'identité de l'utilisateur

Après avoir terminé l'authentification d'autorisation OAuth 2.0, l'application peut obtenir le access_token qui symbolise l'identité de l'utilisateur, qui est généralement utilisé directement pour les appels d'interface. Cependant, certaines applications doivent obtenir l'UID de l'utilisateur comme identifiant d'authentification associé à leur propre système de compte pour fournir davantage de contenu de service propre à l'application. Les situations typiques incluent les applications mobiles et les applications de services de stockage réseau qui utilisent le SDK Weibo SSO.


Dans ce scénario, les vulnérabilités courantes sont :

1. Le client utilise directement l'uid renvoyé par l'interface d'autorisation ou extrait l'uid dans access_token et renvoie le propre serveur de l'application comme identifiant d'authentification. Ce processus de transmission peut être intercepté illégalement et l'identité de l'utilisateur peut être falsifiée en falsifiant l'uid.

2. Le client renvoie le access_token à son propre serveur, et le serveur extrait l'uid comme identifiant d'authentification, mais ne vérifie pas la légalité du access_token. À ce stade, en fraudant l'utilisateur A pour qu'il autorise l'application X, en obtenant le jeton d'accès et en le transmettant au serveur d'application Y, les informations d'identification de l'utilisateur A pour l'application Y peuvent être obtenues et le contenu du service de l'utilisateur dans l'application Y est accessible.


Suggestions de réparation :

1. N'utilisez pas directement l'uid sans informations d'autorisation en échange des informations d'authentification de votre propre service. Vous ne pouvez utiliser que access_token.

2. Pour extraire l'uid dans access_token côté serveur, vous devez appeler l'interface OAuth2/get_token_info de la plateforme ouverte. Lorsque vous utilisez cette interface, vous devez également vérifier si la clé d'application à laquelle appartient le access_token est votre propre clé d'application d'application client. Seuls ceux disposant de sources Appkey cohérentes sont autorisés à échanger des informations d’authentification pour leurs propres services.

3. Vérifiez tous les access_tokens liés stockés et constatez que l'uid Sina dans le access_token est incohérent avec l'uid Sina lié, les access_tokens autorisés par les clés d'application de l'application client non propriétaire, les access_tokens expirés et d'autres situations anormales doivent être révoqués. pour ces utilisateurs anormaux.

Vulnérabilité de détournement de clics

Les sites malveillants intègrent des sites d'applications Weibo dans des iframes et utilisent des technologies telles que les superpositions transparentes HTML pour détourner les opérations de clic des utilisateurs. Afin d'atteindre l'objectif d'inciter les utilisateurs à effectuer des actions malveillantes et d'attirer l'attention.


Suggestions de réparation :


1. Pour les applications qui n'ont pas besoin d'être iframées, vous pouvez choisir l'une des méthodes suivantes.

    • a. Header déclaration header("X-FRAME-OPTIONS:DENY");
    • b JS détermine si la page actuelle est iframe, exemple de code : if(top.location!=location){top.location. =locaiton;}


2. Produits qui doivent être iframes.

    • a. Déterminez si la fenêtre parent est une page autorisée.
    • b Affichez la confirmation de suivi et donnez le pseudo de la personne suivie.


La sécurité des applications couvre un large éventail. En plus de veiller à éviter les problèmes de sécurité courants ci-dessus, les développeurs doivent également prêter attention aux dernières tendances en matière de sécurité, comprendre les failles de sécurité de leurs propres produits et, plus important encore, améliorer les produits et les développeurs. Ce n'est qu'ainsi que les problèmes de sécurité pourront être réduits autant que possible. Si une faille de sécurité survient, vous pouvez nous contacter à temps et nous vous fournirons une solution dans les plus brefs délais.