لقد اكتشفت للتو أنه إذا أرسل شخص ما رسالة خاصة (PM) إلى شخص آخر، فلنفترض من حساب joe إلى jane، وبسبب سبب ما، اكتشف شخص ما (مسجل الدخول) “معرف الموضوع” الصحيح، يمكنه قراءة الرسالة الخاصة.
أعلم أن هذا حالة هامشية نسبيًا وصعبة الاكتشاف، لكن أتمتة نوع من برامج الزحف (scraper) للمرور عبر جميع معرفات الموضوعات قد تسمح لأي شخص بقراءة جميع الرسائل الخاصة.
اكتشفت ذلك لأن مستخدمًا رد على إشعار البريد الإلكتروني، وتمكنت من النقر على الرابط وقراءة الرسالة الخاصة المعنية.
أفترض أنك موظف في المنتدى؟ يجب أن تتمكن من القيام بذلك فقط إذا كنت موظفًا. يجب أن يكون للموظفين القدرة على تدقيق الرسائل الخاصة افتراضيًا، بينما يمتلك المشرفون وأولئك الذين لديهم وصول إلى قاعدة البيانات إمكانية الوصول إلى الرسائل الخام على أي حال.
إذا كنت تحتاج إلى توفير نظام خاص حقًا، فهناك إضافة discourse-encrypt التي توفر تشفيرًا من طرف إلى طرف للرسائل.
هذا صحيح فقط للمسؤولين وليس للمشرفين، لذا سأقوم بتعديل عنوانك لأنه غير صحيح. يمتلك المشرفون أيضًا إمكانية الوصول إلى الرسائل الخاصة فقط عند وضع علامة عليها.
إذا كان هذا مصدر قلق، قم بتخفيض رتبتك إلى مشرف (عن طريق تسجيل الدخول بحساب آخر لتجربة ذلك)، أو فعّل تسجيل زيارات الرسائل الخاصة من قبل المسؤولين في إعدادات موقعك.
سؤال قد يكون غبياً - أين يوجد هذا الإعداد بالضبط؟ نحن على الإصدار المستقر (والذي يجب أن يحتوي على هذا الخيار نظرياً) ولا يمكنني العثور عليه.
تعديل: وجده مسؤول آخر لدينا - إنه “تسجيل مشاهدات الرسائل الشخصية” في علامة التبويب “المستخدمون”. أجادل بأن هذا يجب أن يكون شيئاً في علامة التبويب “الأمان”، ولكن يمكنني أن أفهم لماذا قد يكون هناك بدلاً من ذلك إذا فكرت في الأمر لدقيقة.
سؤال متابعة - هل من الممكن تمكين التسجيل عندما يقوم مسؤول بعرض الرسائل التي يمتلكها حساب، حتى لو لم يفتحوا رسالة لقراءة محتوياتها؟
في سياق منتدانا، سيكون من الممكن للمسؤولين إساءة استخدام سلطتهم بمجرد رؤية تفاصيل رسائل خاصة معينة قد يكون المستخدم جزءًا منها - قراءة المحتويات ليست بالضرورة أكثر ضررًا من معرفة الاسم والمستخدمين الذين لديهم حق الوصول، وهو ما لا يتم تسجيله حاليًا على الرغم من تمكين هذا الإعداد. من الناحية المثالية، نود إصلاح ذلك، وكذلك تسجيل كلما قام مسؤول بعرض الرسائل التي يكون المستخدم جزءًا منها بدلاً من مجرد عرض محتويات رسالة معينة.
فهمي هو أن معظم هذه الأشياء يمكن تسجيلها، وهذا كل ما نحتاجه حقًا - بصراحة، لست متأكدًا من أنني أثق بنفسي في عدم النظر إلى صفحة رسائل المستخدم عن طريق الخطأ ثم المضي قدمًا كما لو لم يحدث شيء، وهو ما قد يكون ضارًا في حالتنا (بشكل خاص، لا نتوقع أن يكون ذلك خطرًا أمنيًا، بل خطرًا على السلامة - أي، لا يتم إلحاق ضرر طويل الأمد طالما أن المستخدم الذي اكتسب هذا المعرفة صريح بشأنها ويتنحى عن المواضيع ذات الصلة).
من المؤكد أنه سيجعل من السهل جدًا التأكد من أن لا أحد يفعل ذلك عن طريق الخطأ أو عن قصد دون الإبلاغ عنه إذا تم تسجيله مع جميع الطرق الأخرى التي يمكنهم من خلالها الوصول إلى نفس البيانات.
إذا لم تكن الأشياء التي أدرجتها قابلة للتسجيل، فيجب أن تكون كذلك، ولكن حتى ذلك الحين، فإنها لن تساعد إلا ضد مسؤول خبيث وليس مسؤولًا مهملًا بعض الشيء.
كيف يمكن تحقيق ذلك دون حجب قوائم رسائلك الخاصة أيضًا؟ على حد علمي، لا توجد علامة (slug) باسم المستخدم للحساب الذي تشاهده يمكنك استخدامها للتأثير فقط على صفحات الرسائل التي ليست ملكك باستخدام CSS.
المشكلة الرئيسية لدي هي أن النص البرمجي الخاص بي يبدو أنه يسترد البيانات قبل تحديثها - أي، يمكنني قراءة البيانات الوصفية عند تغيير الصفحة، ولكنها تتحدث قبل تحديث بيانات الصفحة.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
window.onload = determineUser();
});
function determineUser() {
var pageURL = document.querySelector("meta[property='og:url']").getAttribute("content");
var userPage = pageURL.includes("https://www.fortressoflies.com/u/");
document.documentElement.style.setProperty('--currUsername', pageURL);
if(userPage)
{
document.documentElement.style.setProperty('--lastUsername', pageURL);
}
}
</script>
بشكل أساسي، يتم تحديث --currUsername الخاص بي، ثم يتم تحديث العلامة الوصفية بعنوان URL الجديد، لذا فإن --currUsername الخاص بي دائمًا ما يكون صفحة واحدة خلف ما أنظر إليه فعليًا. يحدث هذا بغض النظر عما إذا كان لدي سطر “window.onload” أم لا.
أي فكرة عما أفعله بشكل خاطئ هنا؟
الهدف النهائي هو مجرد إضافة فئة إلى الجسم بناءً على الصفحة التي تنظر إليها، ثم التنسيق بناءً على ذلك - يجب أن يسمح لنا بقراءة، على سبيل المثال، حقل العنوان بدلاً من حقل og:url، ثم وضع فئة “myMessages” على الجسم للحصول على التأثير المطلوب في هذه الحالة. من الناحية النظرية.