html நீட்டிப்புடன் பக்கங்களில் PHP ஐப் பயன்படுத்துதல். உங்கள் தளவமைப்பில் படிவம் html பக்கத்தை எப்படி படிப்பது php
உள்நுழைவு படிவத்தை உருவாக்க முயற்சிக்கிறேன். இது எனது HTML படிவக் குறியீடு
தனிப்பட்ட முறையில், நான் அதை PDO க்காகப் பெற்றேன்.
புள்ளிகள் 4 மற்றும் 5
$password = mysql_real_escape_string(stripslashes(md5($_POST["password"])));
முதலில், இதன் வரிசை தவறானது. நீங்கள் ஹாஷ் $_POST["கடவுச்சொல்"] மற்றும் பிறகுஸ்ட்ரிப்ஸ்லாஷ்களைப் பயன்படுத்த முயற்சிக்கிறது - பிறகுஅதன் ஹாஷ்கள் எந்த ஸ்லாஷையும் கொண்டிருக்காது. இருப்பினும், கடவுச்சொற்களில் ஸ்லாஷ்களை (அல்லது வேறு எதையும்) பயன்படுத்துவதைத் தடுக்க நீங்கள் முயற்சித்தால், சரத்தை ஹாஷ் செய்வதற்கு முன் அவற்றை அகற்ற வேண்டும்.
பின்வரும் md5 ஐ கடவுச்சொல் ஹாஷிங் அல்காரிதமாகப் பயன்படுத்தக்கூடாது, இது பலவீனமானதாகக் கண்டறியப்பட்டது மற்றும் தேவையானதை விட அடிக்கடி சரம் மோதல்களை உருவாக்குவதற்கு முரட்டு சக்தியாக இருக்கும்.
ஆமாம் நீ வேண்டும்கடவுச்சொற்களின் ஹாஷ்கள் அல்லது "கைரேகைகளை" சேமித்து வைக்கவும், கடவுச்சொற்கள் அல்ல, ஆனால் நீங்கள் அந்த கடவுச்சொற்களை MD5() செயல்பாட்டில் எறிவதை விட, அந்த கடவுச்சொற்களை உப்பு மற்றும் ஹாஷ் செய்ய வேண்டும் (குறைந்தது sha1 உடன்).
உங்கள் விருப்பமான தேடுபொறியைப் பயன்படுத்தி "கடவுச்சொல் ஹாஷ் அமைப்பை" தேடவும்.
புள்ளி 6
பயனர்பெயர் = "" $டேபிளிலிருந்து ஐடியைத் தேர்ந்தெடுக்கவும். $ பயனர் பெயர். "" மற்றும் கடவுச்சொல் = "". $கடவுச்சொல். "";
நான் சேர்த்தேன் = இது அசல் கேள்வியிலிருந்து விடுபட்டது, ஆனால் அவ்வளவுதான் உங்கள் கோரிக்கையில் உள்ள பயனர்பெயர் மற்றும் கடவுச்சொல்லுடன் பொருந்தவில்லை...யாரேனும் உங்கள் பயனர்பெயரில் SQL இன்ஜெக்ஷனைப் பெற முடிந்தால், கடவுச்சொல் சரிபார்க்கப்படாது. அறிமுகம்:
பயனரிடமிருந்து user.id ஐத் தேர்ந்தெடுக்கவும் user.username = "fred" அல்லது 1 = 1 -- மற்றும் user.password = "abc123"
தரவுத்தள நிலை கடவுச்சொல் சரிபார்ப்பை நம்புவதை விட, தரவுத்தளத்திலிருந்து கைரேகை பயனர் ஐடி மற்றும் கடவுச்சொல்லைத் தேர்ந்தெடுத்து, பயன்பாட்டில் உள்ள கடவுச்சொல்லை மதிப்பீடு செய்வது நல்லது. உங்கள் கடவுச்சொற்களைச் சரிபார்க்க, பயன்பாட்டிலேயே ஒரு சிறப்பு ஹாஷிங் மற்றும் சால்ட்டிங் அல்காரிதத்தைப் பயன்படுத்தலாம் என்பதும் இதன் பொருள்.
புள்ளி 7
$_SESSION["பயனர்"] = $_POST["பயனர்பெயர்"];
இது அமர்வில் பயனர்பெயரை மட்டும் சேமிப்பதா? இது எந்த வகையிலும் "உள்நுழைவு சரிபார்ப்பாக" பயன்படுத்தப்படக்கூடாது, குறிப்பாக உங்கள் அமர்வில் கடத்தலைத் தடுக்க (வெளிப்படையாக) எதுவும் இல்லை என்றால்.
அமர்வு ஐடியை குக்கீயிலிருந்து நிகழ்நேரத்தில் எளிதாகப் பறிக்க முடியும், மேலும் வேறொருவரின் பயனர்பெயரை "கடன் வாங்க" அவ்வளவுதான். பயனரின் IP முகவரி, UserAgent சரம் அல்லது ஒவ்வொரு பக்கத்துடனும் ஒப்பிடக்கூடிய ஒப்பீட்டளவில் நிலையான தரவுகளின் வேறு சில கலவையை இணைப்பதன் மூலம் அமர்வு கடத்தல் வாய்ப்பைக் குறைக்க முயற்சிக்க வேண்டும். , நான் ஏற்கனவே கண்டறிந்தபடி, உங்களிடம் AOL ஐப் பயன்படுத்தும் பார்வையாளர்கள் இருந்தால்), ஆனால் பயனரின் அமர்வு தவறுதலாக மீட்டமைக்கப்படுவதற்கான மிகச் சிறிய வாய்ப்புடன், கடத்தலைக் குறைக்க, 99% பயனுள்ள கைரேகை அமர்வைச் சாத்தியமாக்கலாம்.
தணிக்க ஒரு அமர்வு டோக்கனையும் நீங்கள் உருவாக்கலாம் CSRF தாக்குதல்கள்பயனர் தரவுத்தளத்தில் ஒரு "சலுகை" செயலைச் செய்ய வேண்டியிருக்கும் போது (அவர்களின் தரவு அல்லது வேறு ஏதாவது புதுப்பிக்கவும்). டோக்கன் ஒரு தரவுத்தளத்தில் மற்றும்/அல்லது சேமிக்கப்பட்ட முற்றிலும் சீரற்ற மற்றும் தனிப்பட்ட குறியீடாக இருக்கலாம் குக்கீபயனர் உள்நுழையும்போது SSL (HTTPS க்கு வெளியே தரவுத்தளத்தைப் புதுப்பிக்கும் எந்தவொரு செயலையும் பயனர் செய்ய முடியாது, ஏனெனில் இது இணையத்தில் தெளிவான உரையில் தரவை அனுப்பும் - இது மோசமான யோசனை).
டோக்கன் எந்த/அனைத்து படிவங்களுக்கும் ஒரு மறைக்கப்பட்ட படிவப் புலத்தில் வைக்கப்பட்டு, அந்தப் படிவம் சமர்ப்பிக்கப்படும்போது குக்கீயில் (அல்லது அமர்வு அல்லது தரவுத்தளத்தில்) சேமிக்கப்பட்ட மதிப்புக்கு எதிராகச் சரிபார்க்கப்படும். படிவத்தைச் சமர்ப்பிக்கும் நபர் குறைந்தபட்சம் உங்கள் இணையதளத்தில் நேரடி அமர்வைக் கொண்டிருப்பதை இது உறுதி செய்கிறது.
பல பிரச்சனைகள் இருக்கலாம்.
முதலில்,உங்கள் $match அறிக்கையில் கடவுச்சொல் சமத்துவ ஆபரேட்டரை நீங்கள் காணவில்லை:
$match = "$டேபிளில் இருந்து ஐடியை தேர்ந்தெடுங்கள்.
இருக்க வேண்டும்:
$match = "$டேபிளில் இருந்து ஐடியை தேர்ந்தெடுங்கள்.
இரண்டாவதாக, நீங்கள் கடவுச்சொல்லை தரவுத்தளத்தில் செருகவும் பிறகு md5 ஐப் பயன்படுத்துகிறதா?
இல்லையெனில், உங்கள் கோரிக்கையானது md5 (கடவுச்சொல்) கடவுச்சொல்லுடன் பொருத்த முயற்சிக்கிறது.
தனிப்பட்ட வலைத்தளத்தை உருவாக்கும்போது, எல்லோரும் எல்லாவற்றையும் வழங்க முடியாது சாத்தியமான வழிகள்அதன் மேலும் பயன்பாடு. தளத்தின் மேலும் வளர்ச்சிக்கு தரையைத் தயாரிப்பது மிகவும் முக்கியம். நீங்கள் கடந்த காலத்தில் ஒரு இணையதளத்தை உருவாக்கி, எல்லா பக்கங்களுக்கும் .html நீட்டிப்பை முன்னிருப்பாக ஒதுக்கியிருந்தால், பிறகுதான் PHP ஐப் பயன்படுத்த முடிவு செய்திருந்தால், படிக்கவும்.
முன்பு, SSI ஐப் பயன்படுத்த, தளப் பக்கப் பெயர்கள் .shtml நீட்டிப்புடன் முடிவடைய வேண்டும், ஆனால் இன்று பெரும்பாலான இணைய சேவையகங்கள் கட்டமைக்கப்பட்டுள்ளன, எனவே SSI .html நீட்டிப்புடன் கூடிய பக்கங்களில் பயன்படுத்தப்படலாம், இது மிகவும் வசதியானது. PHP முற்றிலும் வேறுபட்ட கதை - .php நீட்டிப்பு இயல்புநிலை நீட்டிப்பாகும். இணையதள டெவலப்பர்கள் எதைப் பயன்படுத்துவார்கள் என்பதை முன்கூட்டியே அறிந்திருக்கிறார்கள் கொடுக்கப்பட்ட மொழிநிரலாக்கத்தில், ரைன்ஸ்டோனுக்கு சரியான நீட்டிப்பு ஒதுக்கப்பட்டுள்ளது.
ஆனால் எல்லா பக்கங்களும் .html நீட்டிப்புடன் முடிவடையும் போது என்ன செய்வது?
HTML நீட்டிப்பை PHP உடன் மாற்றவும்
இதை பல வழிகளில் செய்யலாம். எல்லா பக்கங்களுக்கும் .php நீட்டிப்பை வழங்குவது அல்லது ஏற்கனவே உள்ள நீட்டிப்புகளை மாற்றுவது (.html, .shtml, முதலியன) மிகத் தெளிவான வழி. இந்த முறை தீமைகளைக் கொண்டுள்ளது. எடுத்துக்காட்டாக, .html நீட்டிப்புடன் ஏற்கனவே அட்டவணைப்படுத்தப்பட்ட பக்கங்கள் மீண்டும் அட்டவணைப்படுத்தப்பட வேண்டும். தேடல் இயந்திரங்கள். அல்லது இன்னும் மோசமாக - எல்லாம் வெளி இணைப்புகள், ஒரு குறிப்பிட்ட பக்கத்துடன் வெளிப்படையாக இணைப்பது தவறானது. இந்த மாற்றங்கள் குறித்து ஒவ்வொரு தளத்தின் உரிமையாளர்களுக்கும் நீங்கள் தெரிவிக்க வேண்டும் மற்றும் ஒவ்வொரு பக்கத்திற்கும் 301 பிழைகள் உள்ள மற்றொரு பக்கத்தை உருவாக்க வேண்டும். நிச்சயமாக, ஒரு நீட்டிப்பை மற்றொன்றுக்கு மாற்றுவது ஏற்றுக்கொள்ளத்தக்கது, ஆனால் தளத்தில் ஏற்கனவே பல பக்கங்கள் மற்றும் பிற தளங்களிலிருந்து வெவ்வேறு பக்கங்களுக்கு பல இணைப்புகள் இருந்தால் என்ன செய்வது?
ஒரு நனவான காரணத்திற்காக இந்த நேரத்தில்இந்த தளத்தின் அனைத்து பக்கங்களும் html நீட்டிப்புடன் முடிவடைகின்றன, மேலும் நான் மேலே உள்ள மாற்றங்களைச் செய்ய விரும்பவில்லை, இதனால் எனக்கே தேவையற்ற சிரமங்களை உருவாக்குகிறது.
நீங்கள் அதை வேறு வழியில் செய்யலாம். தளத்தை வழங்கும் சேவையகம் mod_rewrite ஐ ஆதரித்தால் (பெரும்பாலான சந்தர்ப்பங்களில் அது செய்கிறது), மேலும் .htaccess கோப்பிற்கான அணுகல் இருந்தால், இந்த கோப்பில் பின்வரும் வரிகளைச் சேர்க்கலாம்:
RewriteEngine on RewriteRule ^(.*)\.html $1\.php
இந்தக் குறியீட்டை .htaccess இல் சேர்ப்பதன் மூலம், நீங்கள் கவலைப்பட வேண்டியதில்லை. .html நீட்டிப்புடன் கோரப்பட்ட அனைத்து இல்லாத பக்கங்களும் தானாகவே .php நீட்டிப்புடன் மாற்றப்படும், அப்பாச்சியின் அற்புதங்களுக்கு நன்றி. ஆனால் இந்த முறை மட்டும் இல்லை. நீங்கள் பின்வரும் அதே .htaccess கோப்பில் எழுதலாம்:
AddHandler பயன்பாடு/x-httpd-php .php .html .htm
என் கருத்து மிகவும் வெற்றிகரமான வழி. இது HTML பக்கங்களை PHP பக்கங்களுக்குச் சமமாக ஆக்குகிறது, அதாவது அனைத்து PHP செயல்பாடுகளும் இப்போது HTML நீட்டிப்பு உள்ள பக்கங்களில் பயன்படுத்தப்படலாம். .htaccess கோப்பிற்கான அணுகல் உங்களிடம் இல்லையென்றால், நீங்கள் ஹோஸ்டிங் நிறுவனத்திற்கு ஒரு கடிதம் எழுதி, நிர்வாகிகளை பணிவுடன் பதிவு செய்யுமாறு கேட்கலாம். அப்பாச்சி கட்டமைப்புகள்(httpd.conf) தளத்திற்கு தேவையான மதிப்பு.
இதற்கு முன், தளம் SSI ஐ பின்வருமாறு பயன்படுத்தியிருந்தால்:
புதிய PHP நிலையில் இந்த குறியீடு மாற்றப்பட வேண்டும்:
include("file.txt"); ?>
சரி, அவ்வளவுதான், மேலே உள்ள முறைகளில் ஒன்று உதவும் என்று நான் நினைக்கிறேன்.
PHP என்பது உட்பொதிக்கப்பட்ட சர்வர் பக்க நிரலாக்க மொழி. அதன் தொடரியல் சி, ஜாவா மற்றும் பெர்ல் ஆகியவற்றிலிருந்து பெறப்பட்டது. மேலும் சில தனிப்பட்ட குணாதிசயங்களை மட்டும் சேர்த்தது PHP செயல்பாடுகள். இந்த மொழியின் முக்கிய நோக்கம் மாறும் வகையில் உருவாக்கப்பட்ட PHP HTML பக்கங்களை உருவாக்குவதாகும்.
PHP முதல் HTML வரை
சிக்கலான வலைப்பக்கங்களை உருவாக்கும் போது, குறிப்பிட்ட பணிகளைச் செய்ய PHP மற்றும் HTML ஐ இணைக்க வேண்டிய அவசியத்தை நீங்கள் எதிர்கொள்வீர்கள். முதல் பார்வையில், இது சிக்கலானதாகத் தோன்றலாம், ஏனெனில் PHP மற்றும் HTML இரண்டு சுயாதீனமான துறைகள், ஆனால் இது அவ்வாறு இல்லை. PHP ஆனது HTML உடன் தொடர்பு கொள்ள வடிவமைக்கப்பட்டுள்ளது, மேலும் அதன் குறியீடு பக்க மார்க்அப்பில் சேர்க்கப்படலாம்.
சிறப்பு குறிச்சொற்களைப் பயன்படுத்தி HTML பக்கங்களில் PHP குறியீடு சேர்க்கப்பட்டுள்ளது. ஒரு பயனர் ஒரு பக்கத்தைத் திறக்கும்போது, சேவையகம் PHP குறியீட்டைச் செயலாக்குகிறது, பின்னர் செயலாக்கத்தின் முடிவை அனுப்புகிறது (இல்லை PHP குறியீடு) உலாவிக்கு.
HTML மற்றும் PHP இணைப்பது மிகவும் எளிதானது. குறிச்சொற்களுக்கு வெளியே PHP ஸ்கிரிப்ட்டின் எந்தப் பகுதியும்PHP கம்பைலரால் புறக்கணிக்கப்பட்டு நேரடியாக உலாவிக்கு அனுப்பப்படுகிறது. கீழே உள்ள எடுத்துக்காட்டைப் பார்த்தால், ஒரு முழுமையான PHP ஸ்கிரிப்ட் இப்படி இருக்கும் என்பதை நீங்கள் காணலாம்:
இன்று வணக்கம்.