নিরাপত্তা
চলমান ব্যবহারকারী
চলমান ব্যবহারকারীকে নিম্ন-অধিকার সম্পন্ন ব্যবহারকারী হিসাবে সেট করার পরামর্শ দেওয়া হয়, উদাহরণস্বরূপ nginx এর মতো একই ব্যবহারকারী। চলমান ব্যবহারকারী config/server.php এর user এবং group এ সেট করা হয়।
একইভাবে, কাস্টম প্রসেসের ব্যবহারকারী config/process.php এর user এবং group এর মাধ্যমে নির্দিষ্ট করা হয়।
উল্লেখ্য যে মনিটর প্রসেসের জন্য চলমান ব্যবহারকারী সেট করা উচিত নয়, কারণ এটি সঠিকভাবে কাজ করার জন্য উচ্চ অনুমতির প্রয়োজন।
কন্ট্রোলার নিয়মাবলী
controller ডিরেক্টরি বা এর উপ-ডিরেক্টরিতে কেবলমাত্র কন্ট্রোলার ফাইল রাখা যায়, অন্য কোন ক্লাস ফাইল রাখা নিষিদ্ধ। অন্যথায় কন্ট্রোলার প্রত্যয় চালু না থাকলে URL এর মাধ্যমে ক্লাস ফাইলে অবৈধভাবে অ্যাক্সেস করা সম্ভব হতে পারে, যার ফলে অপ্রত্যাশিত পরিণাম হতে পারে।
উদাহরণস্বরূপ, app/controller/model/User.php আসলে একটি Model ক্লাস, কিন্তু ভুলভাবে controller ডিরেক্টরিতে রাখা হয়েছে। কন্ট্রোলার প্রত্যয় চালু না থাকলে ব্যবহারকারীরা /model/user/xxx এর মতো URL এর মাধ্যমে User.php এর যেকোনো মেথড অ্যাক্সেস করতে পারবে।
এই ধরনের পরিস্থিতি সম্পূর্ণভাবে বন্ধ করতে কন্ট্রোলার প্রত্যয় ব্যবহার করে কন্ট্রোলার ফাইল স্পষ্টভাবে চিহ্নিত করার জোরালো পরামর্শ দেওয়া হয়।
XSS ফিল্টারিং
সার্বজনীনতার বিবেচনায়, webman অনুরোধে XSS ইস্কেপ সম্পাদন করে না।
webman রেন্ডারিংয়ের সময় XSS ইস্কেপ করার জন্য জোরালোভাবে সুপারিশ করে, ডাটাবেসে প্রবেশের আগে নয়।
এছাড়াও twig, blade, think-template ইত্যাদি টেমপ্লেট স্বয়ংক্রিয়ভাবে XSS ইস্কেপ সম্পাদন করে, ম্যানুয়াল ইস্কেপের প্রয়োজন নেই, খুব সুবিধাজনক।
নির্দেশনা
যদি আপনি ডাটাবেসে প্রবেশের আগে XSS ইস্কেপ করেন, তাহলে কিছু অ্যাপ্লিকেশন প্লাগইনের সাথে অসামঞ্জস্যতার সমস্যা হতে পারে।
SQL ইঞ্জেকশন প্রতিরোধ
SQL ইঞ্জেকশন প্রতিরোধের জন্য দয়া করে যথাসম্ভব ORM ব্যবহার করুন, যেমন illuminate/database, think-orm। ব্যবহারের সময় নিজে SQL একত্রিত করা এড়িয়ে চলুন।
nginx প্রক্সি
যখন আপনার অ্যাপ্লিকেশন বহিরাগত ইন্টারনেট ব্যবহারকারীদের কাছে উন্মুক্ত করার প্রয়োজন হয়, webman এর সামনে একটি nginx প্রক্সি যোগ করার জোরালো সুপারিশ করা হয়। এতে কিছু অবৈধ HTTP অনুরোধ ফিল্টার করা যায় এবং নিরাপত্তা বৃদ্ধি পায়। বিস্তারিত জানতে nginx প্রক্সি দেখুন।