4 votes

Umbraco se transforme comme par magie en "On dirait qu'il y a encore du travail à faire".

J'ai un client et il m'a signalé que 5/6 fois, le site web est revenu en quelque sorte en mode non publié. Nous ne sommes pas certains de la cause de ce phénomène, qui se produit généralement lorsque personne ne travaille sur le site. Certaines personnes ont par le passé et ont peut-être encore des intentions malveillantes de faire tomber le site (cela pourrait donc être un problème).

  1. Y a-t-il des problèmes de sécurité connus dans Umbraco par lesquels un utilisateur pourrait malicieusement dépublier l'ensemble du site web ?

  2. Y a-t-il des bogues dans Umbraco qui pourraient provoquer ce phénomène ?

  3. Est-ce qu'Umbraco vérifie la base de données pour le drapeau publié, ou est-ce qu'il vérifie seulement l'existence du fichier XML avant de choisir d'afficher le message "il y a plus de travail à faire" ?

3voto

Digbyswift Points 6130

Le message auquel vous faites référence existe dans le fichier /install/noNodes.aspx.

Cela indiquerait que le site, ou du moins la page d'accueil du site, n'est pas publié. Cela indiquerait que quelqu'un ou un processus est en train de dépublier le site ou la page d'accueil. Tout d'abord, je vérifierais qu'il n'y a pas une date de "non-publication" définie sur la page d'accueil dans l'onglet "Propriétés".

Vérifiez également les journaux d'Umbraco pour savoir qui dépublie quels nœuds et quand. Vous pourrez également vérifier l'historique d'audit de la page d'accueil pour voir qui l'a modifiée.

Si vous soupçonnez des intentions malveillantes, vous devez certainement mettre au point votre propre sécurité avant d'envisager des problèmes de sécurité avec Umbraco. Vous devez envisager de changer les mots de passe du serveur RDC, du SQL's sa et de tout mot de passe spécifique à Umbraco.

2voto

Geoff Beaumont Points 131

Umbraco affichera cette page s'il est incapable de se connecter à la base de données.

Dans les anciennes versions d'Umbraco, une fois que cela se produisait, le site restait dans cet état jusqu'à ce qu'il soit republié - cela semble avoir été corrigé (je ne suis pas sûr de quelle version). Si vous souffrez de ce problème et que la mise à jour n'est pas une option, alors une solution de contournement est de placer le code suivant en haut de /config/splashes/noNodes.aspx :

<script runat="server">    
    protected void Page_Load(object sender, EventArgs e)
    {
        Server.ScriptTimeout = 100000;
        var cacheFile = IOHelper.MapPath("/App_Data/umbraco.config");
        try
        {
            var r = XmlReader.Create(cacheFile, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore });
            var d = new XmlDocument();
            d.Load(r);
            var n = d.SelectSingleNode("//root");
            r.Close();
            if (n.ChildNodes.Count == 0)
            {
                Response.Write("Republishing Site......");
                Response.Flush();
            }
            else
            {
                Response.Write("Site Was Already Published......");
                return;
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            Response.Write("Cache missing, republishing.....");
            Response.Flush();
        }

        Document.RePublishAll();
        library.RefreshContent();

        Response.Write("Completed");
        Response.Flush();

        Response.Redirect("/");

        Response.End();
    }
</script>

(Ce code n'était pas le mien à l'origine - je ne me souviens plus où je l'ai obtenu). Le code tente de republier le site de sorte que, dès que la connexion à la base de données est à nouveau disponible, le site réapparaît.

Vous pouvez également modifier le contenu de /config/splashes/noNodes.aspx pour afficher à vos utilisateurs un message de maintenance du site ou d'erreur plus approprié.

Savez-vous si une maintenance de la base de données était prévue au moment où le site de votre client a souffert de ce problème ? Si ce n'est pas le cas, vous devriez peut-être jeter un coup d'oeil à son hébergement.

1voto

Tim Points 3729

Je reprendrais tout ce que Digbyswift a dit, en plus, est-ce que les pages du site apparaissent comme non publiées dans le back-office ? Si elles semblent toujours être publiées (c'est-à-dire qu'elles ne sont pas grisées) mais qu'elles n'apparaissent pas sur le front-end, alors quelqu'un peut avoir défini une date de non-publication dans l'onglet des propriétés. Si elle est grisée, c'est que quelqu'un l'a physiquement dépubliée, probablement via le back-office.)

S'il apparaît comme publié, mais que rien ne l'est sur le front-end, il est également possible que quelque chose se soit mal passé avec la table cmsContentXml. Lorsque cela se produit, vérifiez qu'il y a des enregistrements dans cette table. S'il n'y en a pas, le site pensera qu'elle est vide, car le cache XML du site est reconstruit à partir de cette table au démarrage du site. Si la table est vide, quelqu'un ou quelque chose la vide alors qu'elle ne devrait pas l'être.

Si vous soupçonnez un utilisateur malveillant, réinitialisez TOUS les mots de passe du système (utilisateurs du back-office ET base de données) et assurez-vous que tous ceux qui ont accès au CMS ont leur propre nom d'utilisateur et leur propre mot de passe (et assurez-vous qu'ils ne connaissent pas les détails de leurs collègues).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X