WSF/PHP調(diào)用帶有WS-Security支持的Web Service時的注意事項
Jun 08, 2016 pm 05:32 PM1、WSF/PHP【W(wǎng)SO2 Web Services Framework for PHP】?是WSO2.ORG提供的專門針對PHP調(diào)用Web Service的一個優(yōu)秀框架,使用非常簡單;但是WSO2不僅僅提供針對PHP的ws框架,而且還對其他很多中語言提供開發(fā)框架,比如基于Spring、Perl、Ruby……,除此之外還提供很多其他框架和培訓服務(wù),具體可查詢wso2.org和wso2.com;
2、WSF/PHP模塊的安裝需要很多其他的支持包,在windows下面體現(xiàn)為一些dll文件,主要包括Libxml2、iconv、Openssl、zlib,而不僅僅是Libxml2【GNOME XML Library】;安裝過程中需要將這些依賴dll全部都集中到wsf_c/lib/目錄中;這些依賴包可以到http://www.zlatkovic.com/pub/libxml/下載,下載完成之后對各壓縮包解壓,dll文件一般位于/bin/目錄中;
3、WSF所依賴的這些dll文件一定需要copy到/windows/system32/中才行,否則加載模塊不成功;這點和官方文檔中說的直接將wsf_c/lib/加入到path中即可是不一致的;當然這點可能有其他方式可以解決,因為我不精通PHP,但是和一些同事溝通過,但沒結(jié)果;
4、驗證是否正常加載了WSF模塊,只用php -m命令查看列表是不夠的,即時WSF模塊沒有加載成功,但是php.ini中設(shè)置了WSF模塊,那php -m的列表中也會包括WSF;最保險的做法是查看服務(wù)器日志比如Apache;
5、在申明WSSecurityToken實例的時候,參數(shù)receiverCertificate是用來加密Soap消息的,而不是用來驗證服務(wù)端返回的簽名信息的,所以若只是需要簽名,那該參數(shù)無需設(shè)置;WSF/PHP目前還沒有提供驗證服務(wù)端返回的簽名信息功能的;
6、WSF/PHP調(diào)用WS時默認使用SOAP 1.2協(xié)議,這可能會對某些服務(wù)端ws調(diào)用時出錯,若需要設(shè)置使用SOAP版本,則可以在申請WSClient實例時設(shè)置參數(shù)"useSOAP" => "1.1"實現(xiàn);

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To safely handle PHP file uploads, you need to verify the source and type, control the file name and path, set server restrictions, and process media files twice. 1. Verify the upload source to prevent CSRF through token and detect the real MIME type through finfo_file using whitelist control; 2. Rename the file to a random string and determine the extension to store it in a non-Web directory according to the detection type; 3. PHP configuration limits the upload size and temporary directory Nginx/Apache prohibits access to the upload directory; 4. The GD library resaves the pictures to clear potential malicious data.

InPHP,variablesarepassedbyvaluebydefault,meaningfunctionsorassignmentsreceiveacopyofthedata,whilepassingbyreferenceallowsmodificationstoaffecttheoriginalvariable.1.Whenpassingbyvalue,changestothecopydonotimpacttheoriginal,asshownwhenassigning$b=$aorp

The reason why header('Location:...') in AJAX request is invalid is that the browser will not automatically perform page redirects. Because in the AJAX request, the 302 status code and Location header information returned by the server will be processed as response data, rather than triggering the jump behavior. Solutions are: 1. Return JSON data in PHP and include a jump URL; 2. Check the redirect field in the front-end AJAX callback and jump manually with window.location.href; 3. Ensure that the PHP output is only JSON to avoid parsing failure; 4. To deal with cross-domain problems, you need to set appropriate CORS headers; 5. To prevent cache interference, you can add a timestamp or set cache:f

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

The most direct way to find the last occurrence of a substring in PHP is to use the strrpos() function. 1. Use strrpos() function to directly obtain the index of the last occurrence of the substring in the main string. If it is not found, it returns false. The syntax is strrpos($haystack,$needle,$offset=0). 2. If you need to ignore case, you can use the strripos() function to implement case-insensitive search. 3. For multi-byte characters such as Chinese, the mb_strrpos() function in the mbstring extension should be used to ensure that the character position is returned instead of the byte position. 4. Note that strrpos() returns f

In PHP, you can use square brackets or curly braces to obtain string specific index characters, but square brackets are recommended; the index starts from 0, and the access outside the range returns a null value and cannot be assigned a value; mb_substr is required to handle multi-byte characters. For example: $str="hello";echo$str[0]; output h; and Chinese characters such as mb_substr($str,1,1) need to obtain the correct result; in actual applications, the length of the string should be checked before looping, dynamic strings need to be verified for validity, and multilingual projects recommend using multi-byte security functions uniformly.

To prevent session hijacking in PHP, the following measures need to be taken: 1. Use HTTPS to encrypt the transmission and set session.cookie_secure=1 in php.ini; 2. Set the security cookie attributes, including httponly, secure and samesite; 3. Call session_regenerate_id(true) when the user logs in or permissions change to change to change the SessionID; 4. Limit the Session life cycle, reasonably configure gc_maxlifetime and record the user's activity time; 5. Prohibit exposing the SessionID to the URL, and set session.use_only

You can use substr() or mb_substr() to get the first N characters in PHP. The specific steps are as follows: 1. Use substr($string,0,N) to intercept the first N characters, which is suitable for ASCII characters and is simple and efficient; 2. When processing multi-byte characters (such as Chinese), mb_substr($string,0,N,'UTF-8'), and ensure that mbstring extension is enabled; 3. If the string contains HTML or whitespace characters, you should first use strip_tags() to remove the tags and trim() to clean the spaces, and then intercept them to ensure the results are clean.
