I just found out that if someone sends a PM to other person. Let’s say from account joe to jane, and for some reason someone (logged in) finds out the right “topic ID” it can read the PM.
I know is kinda a edge-case and is rather difficult to find out, but automating some kind of scraper to cicle trough all the topics ID anyone could read all the PMs.
I found out because a user replied to the notification email, and I was able to click the link and read the PM in question.
I’m assuming you are a staff member on the forum? You should only be able to do this if you are staff. Staff should have the ability to audit PMs by default, and admins and those with access to the DB would have access to the raw messages anyway.
If you’re needing to provide a truly private system, there is the discourse-encrypt plugin which provides end-to-end encryption of messages.
This is only true for admins, not moderators, so I am editing your title which is incorrect. Moderators also only have access to PMs when they are flagged.
If this is a concern, demote yourself to moderator (by logging in under a different account to taste), or enable logging of PM visits by admins in your site settings.
سؤال قد يكون غبياً - أين يوجد هذا الإعداد بالضبط؟ نحن على الإصدار المستقر (والذي يجب أن يحتوي على هذا الخيار نظرياً) ولا يمكنني العثور عليه.
تعديل: وجده مسؤول آخر لدينا - إنه “تسجيل مشاهدات الرسائل الشخصية” في علامة التبويب “المستخدمون”. أجادل بأن هذا يجب أن يكون شيئاً في علامة التبويب “الأمان”، ولكن يمكنني أن أفهم لماذا قد يكون هناك بدلاً من ذلك إذا فكرت في الأمر لدقيقة.
سؤال متابعة - هل من الممكن تمكين التسجيل عندما يقوم مسؤول بعرض الرسائل التي يمتلكها حساب، حتى لو لم يفتحوا رسالة لقراءة محتوياتها؟
في سياق منتدانا، سيكون من الممكن للمسؤولين إساءة استخدام سلطتهم بمجرد رؤية تفاصيل رسائل خاصة معينة قد يكون المستخدم جزءًا منها - قراءة المحتويات ليست بالضرورة أكثر ضررًا من معرفة الاسم والمستخدمين الذين لديهم حق الوصول، وهو ما لا يتم تسجيله حاليًا على الرغم من تمكين هذا الإعداد. من الناحية المثالية، نود إصلاح ذلك، وكذلك تسجيل كلما قام مسؤول بعرض الرسائل التي يكون المستخدم جزءًا منها بدلاً من مجرد عرض محتويات رسالة معينة.
فهمي هو أن معظم هذه الأشياء يمكن تسجيلها، وهذا كل ما نحتاجه حقًا - بصراحة، لست متأكدًا من أنني أثق بنفسي في عدم النظر إلى صفحة رسائل المستخدم عن طريق الخطأ ثم المضي قدمًا كما لو لم يحدث شيء، وهو ما قد يكون ضارًا في حالتنا (بشكل خاص، لا نتوقع أن يكون ذلك خطرًا أمنيًا، بل خطرًا على السلامة - أي، لا يتم إلحاق ضرر طويل الأمد طالما أن المستخدم الذي اكتسب هذا المعرفة صريح بشأنها ويتنحى عن المواضيع ذات الصلة).
من المؤكد أنه سيجعل من السهل جدًا التأكد من أن لا أحد يفعل ذلك عن طريق الخطأ أو عن قصد دون الإبلاغ عنه إذا تم تسجيله مع جميع الطرق الأخرى التي يمكنهم من خلالها الوصول إلى نفس البيانات.
إذا لم تكن الأشياء التي أدرجتها قابلة للتسجيل، فيجب أن تكون كذلك، ولكن حتى ذلك الحين، فإنها لن تساعد إلا ضد مسؤول خبيث وليس مسؤولًا مهملًا بعض الشيء.
كيف يمكن تحقيق ذلك دون حجب قوائم رسائلك الخاصة أيضًا؟ على حد علمي، لا توجد علامة (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” على الجسم للحصول على التأثير المطلوب في هذه الحالة. من الناحية النظرية.