RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Configs/Cursor rules/WisdmLabs/moodle-local_edwiserreports-free

Cursor rule

.cursor/rules/moodle-security-practices.mdc

[object Object]

Cursor rules

Quality

50/100

Scores the file, not the repository.

Length

241 words

5 headings · 1 code blocks

Repository

4

— · pushed 2 days ago

Last changed

3 days ago

First indexed 3 days ago.
WisdmLabs/moodle-local_edwiserreports-free/.cursor/rules/moodle-security-practices.mdcRawGitHub
1---
2description:
3globs:
4alwaysApply: false
5---
6# Moodle Security Practices
7 
8## Purpose
9Ensure all PHP code follows Moodle security best practices to prevent vulnerabilities and maintain data integrity.
10 
11## Instructions
12When writing PHP code for Moodle, implement these security practices:
13 
141. **Input Validation**: Always validate and sanitize user input using Moodle's validation functions
152. **SQL Injection Prevention**: Use parameterized queries with `$DB->get_records_sql()` or `$DB->execute()`
163. **XSS Prevention**: Use `format_string()` and `format_text()` for output, never output raw user data
174. **CSRF Protection**: Include `require_sesskey()` in forms and actions that modify data
185. **Capability Checks**: Always check user capabilities before performing actions
196. **File Upload Security**: Validate file types, sizes, and use `moodle_exception` for errors
207. **Session Security**: Use Moodle's session management, never manipulate `$_SESSION` directly
218. **Password Handling**: Never store passwords in plain text, use Moodle's password hashing
22 
23## Examples
24 
25```php
26<?php
27// File: ./includes/security_example.php
28 
29/**
30 * Example of secure form processing
31 */
32function process_user_data() {
33 global $DB, $USER;
34
35 // CSRF protection
36 require_sesskey();
37
38 // Capability check
39 require_capability('moodle/user:editownprofile', context_user::instance($USER->id));
40
41 // Input validation
42 $userid = required_param('userid', PARAM_INT);
43 $name = required_param('name', PARAM_TEXT);
44 $email = required_param('email', PARAM_EMAIL);
45
46 // SQL injection prevention
47 $user = $DB->get_record('user', ['id' => $userid], '*', MUST_EXIST);
48
49 // XSS prevention in output
50 echo format_string($user->firstname);
51 echo format_text($user->description, FORMAT_HTML);
52
53 // Secure file upload
54 $file = file_get_submitted_draftfileid('userfile');
55 if ($file) {
56 $context = context_user::instance($USER->id);
57 file_save_draft_area_files($file, $context->id, 'user', 'profile', 0);
58 }
59}
60```
61 
62## Exceptions
63- Third-party integrations may require different security approaches
64- Legacy code should be updated to follow these practices when modified
65 

Sections

  • Moodle Security Practices
  • Purpose
  • Instructions
  • Examples
  • Exceptions

What it covers

securityagent-behaviour

Stack — with the evidence

javascript

(1.00)

Glob targeting

  • [object Object]

Format

Cursor rules

The most expressive format here. Many small .mdc files, each with frontmatter declaring when it should load, so a rule about migrations only enters context when a migration is open. Costs the most to maintain and only one editor reads it.

What the corpus says about it

Repository

Owner
WisdmLabs
Language
—
License
—
Archived
no

All configs in this repo

Also in WisdmLabs/moodle-local_edwiserreports-free

Diff this repo’s formats

One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?

The other instruction files in this repository
RepositoryFormatStackCoversScoreChanged
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-ajax-and-js-integration.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-configuration-management.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-database-patterns.mdc · 4Cursor rulesjavascriptstyledatabaseagent-behaviour54/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-error-handling.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-events-and-callbacks.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-file-and-media-handling.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-internationalization.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-performance-optimization.mdc · 4Cursor rulesjavascriptperformanceagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-php-coding-standards.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-plugin-structure.mdc · 4Cursor rulesjavascriptarchagent-behaviour54/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-scheduled-tasks.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-testing-and-quality.mdc · 4Cursor rulesjavascripttesttesting-strategyagent-behaviour54/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-web-services-and-api.mdc · 4Cursor rulesjavascriptapiagent-behaviour50/1003 days ago
Diff against .cursor/rules/moodle-ajax-and-js-integration.mdc Diff against .cursor/rules/moodle-configuration-management.mdc Diff against .cursor/rules/moodle-database-patterns.mdc Diff against .cursor/rules/moodle-error-handling.mdc Diff against .cursor/rules/moodle-events-and-callbacks.mdc Diff against .cursor/rules/moodle-file-and-media-handling.mdc Diff against .cursor/rules/moodle-internationalization.mdc Diff against .cursor/rules/moodle-performance-optimization.mdc Diff against .cursor/rules/moodle-php-coding-standards.mdc Diff against .cursor/rules/moodle-plugin-structure.mdc Diff against .cursor/rules/moodle-scheduled-tasks.mdc Diff against .cursor/rules/moodle-testing-and-quality.mdc Diff against .cursor/rules/moodle-web-services-and-api.mdc

Similar configs

Same format, overlapping stack, ranked by quality.

Same format, overlapping stack, ranked by quality
RepositoryFormatStackCoversScoreChanged
hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126Cursor rulesgobun+5setupbuildtestlint-format+6100/1003 days ago
TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45Cursor rulestypescriptpytest+15testlint-formatstylearch+5100/1003 days ago
markstev/mark-starter.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+14setuptestlint-formatstyle+699/1003 days ago
Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+13setuptestlint-formatstyle+799/1003 days ago
deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1Cursor rulestypescriptnextjs+5setuptestlint-formatstyle+799/1003 days ago
dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+15setuptestlint-formatstyle+799/1003 days ago
langflow-ai/langflow.cursor/rules/docs_development.mdc · 153kCursor rulespythonnode+16setupbuildtestlint-format+797/1003 days ago
TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45Cursor rulestypescriptpytest+15teststyletesting-strategysecurity+397/1003 days ago
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack