DIG Book PI Web
DIG Book PI Web
DIG Book PI Web
<TITLE PLACEHOLDER>
Digital Interactive Group
By pursuing best-practices and harnessing historical data from each digital project, we can
apply knowledge to our organization’s most pressing strategic and tactical challenges. Our
goals are to have this new approach become one of many platforms that can help socialize,
in real-time, the knowledge that exists within every digital project and build a continuous
improvement process that will place PepsiCo as a digital leader, and our partner agencies
and vendors at the cutting edge of service delivery.
The DIG Book guides agencies and PepsiCo brand, procurement, legal, and IT functions to
analyze the technical viability of projects by answering questions such as: a) Will the project
be considered high risk?; b) Will data be captured consistently and with the correct security
measures in place?; and c) Are common protocols in place to share data or assets between
multiple 3rd party providers?
The DIG Book is based on PepsiCo’s most highly-complex web projects. It is comprised of a
series of main sections and multiple subsections describing a process that may apply in a
continuous cycle or as stand-alone activities for a project. Many activities are highly
interdependent (web process + web certification).
Low to medium complexity digital projects will be able to utilize the same process by
tailoring the approach and activities without losing an Agency’s core methodology or
process.
Where to start
The DIG Book accommodates all project types: large or small, short or long, iterative or
waterfall. The processes are applicable to all PepsiCo web, mobile, social and campaign
projects. Determining which processes or activities are required is based on our Risk
Assessment and Process Tailoring Tool. The tool is a quick and efficient way to measure
project risk and complexity and to determine what activities need to be “tailored” to meet
new standards and guidelines.
Every activity in the DIG Book is also a project milestone which has specific tasks for the
PepsiCo teams and identifies the required support from the agency. As the risk and
complexity of a project lowers, the number of activities will lower for the agency. However,
the PepsiCo activities will remain stable for all projects to ensure compliance to a unified
technology approach for all digital projects.
The process begins with Agency Certification and Onboarding; new agencies and vendors
and existing agencies and vendors become certified by submitting our Technology
Capabilities Assessment questionnaire. Once qualified for a specific project or service, an
agency or vendor moves on to technical onboarding where they learn about new process
activities from our IT team (Business + Information Solutions, or “BIS”), and how to interface
with the risk tool, new standards, and other areas.
After onboarding, agencies and vendors begin their project with a brand team and an
assigned BIS digital interactive specialist. From ideation and through the project lifecycle,
the digital interactive specialist will be the shepherd of the project as well as the facilitator in
assisting with new documentation and requirements.
Technology Capabilities
Assessment for Digital Projects
(Web, Mobile, Email and Social)
AGENCY CERTIFICATION
And finally, this assessment is also the first gate to enter the PepsiCo Agency and Vendor
Certification Program.
Process A BIS digital interactive specialist will work with a brand sponsor to
execute all processes and validate all documents. Once the
process Technology Capabilities Assessment has been completed by the
agency or vendor, the BIS team will review the submission and apply
a maturity score to all answers, using the Technical Capabilities
Assessment Scorecard and the maturity scoring key / legend.
Once a final maturity score is tallied, the BIS specialist, brand representative, and
procurement representative will meet to discuss the score and determine next steps.
An agency or vendor may score low in some areas and high in others. It will be a joint
decision if the agency or vendor is invited to enter into the RFP process. If technical
weaknesses (low maturity score) are considered low impact to the project, the
BIS specialist can identify these areas and ensure they are addressed during agency
and vendor onboarding.
project
Project Project name Launch date
information
information
Business partner
BIS digital
interactive specialist
Group
Agency
Notes
Approvals
Your signature indicates your review and agreement with the content in this document and
that you are accountable for the sign-off of this completed key deliverable.Key deliverables
that require signature are under formal change control once they have been signed.
BIS sponsor
BIS engagement mgr. Paul Longo Position BIS Manager
Agency contact 1
Agency contact name (1) Position
Group
Agency name
Address Telephone #
Email address
Agency contact 2
Agency contact name (2) Position
Group
Agency name
Address Telephone #
Email address
25. Please describe how your firm assists clients in complying with the Children‟s Online
Privacy Protection Act (COPPA) as it relates to website and on-line services directed to
children under 13 and collecting personal information.
26. Please describe your process for DNS registration and management.
Usability: websites
57. PepsiCo is looking to improve the usability and functionality of their websites. Describe
how your firm approaches usability and optimizes functionality.
58. What differentiates you from the competition when it comes to information
architecture?
59. How many staff members are considered experts in information architecture and what
are their typical qualifications/experience levels?
Website #1
URL:
Activity Statistics
Website #2
URL:
Activity Statistics
Website #3
URL:
Activity Statistics
Website #4
URL:
Activity Statistics
Usability: email
135. PepsiCo is looking to improve the usability and functionality of their websites. Describe
how your firm approaches usability and optimizes functionality.
136. What differentiates you from the competition when it comes to information
architecture?
137. How many staff members are considered experts in information architecture and what
are their typical qualifications/experience levels?
Usability: social
161. PepsiCo is looking to improve the usability and functionality of their web assets.
Describe how your firm approaches usability and optimizes functionality.
162. What differentiates you from the competition when it comes to information architecture
in social applications/campaigns?
163. How many staff members are considered experts in information architecture and what
are their typical qualifications/experience levels?
1. What is the primary reason for submitting vendor for certification? (e.g., project
description, RFP reference #, or skill specialty).
2. In your view, what does this vendor bring to the table that existing vendors may not be
as well suited for?
3. Do you have any additional information to provide in regard to this potential vendor?
Template See the Technology Capabilities Assessment online template on PepsiCo‟s Agency
template
Activity map The Agency Certification Activity Map is a Microsoft Excel online tool with additional
agency certification details for PepsiCo project teams. Refer to the Digital Resource
activity map Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center
Appendix......................................................................... 3.1.8
Process
By now, your BIS onboarding contact has been in touch with you to introduce your team to
the BIS technical onboarding process and to schedule the onboarding session. Additional
information will be provided during the onboarding session, however, the following sections
should help jumpstart your understanding of our department’s responsibilities, organization,
and capabilities.
Please let your BIS onboarding contact know if you have any questions or comments in
advance of the upcoming sessions.
PepsiCo including 19 different product lines that generate more than $1 billion in annual retail sales
each. Our main businesses – Frito-Lay, Quaker, Pepsi-Cola, Tropicana, and Gatorade –
also make hundreds of other nourishing, tasty foods and drinks that bring joy to our
consumers in over 200 countries.
PepsiCo strives to continually improve all aspects of the world in which we operate -
environmental, social, economic - creating a better tomorrow than today. Our vision is put
into action through programs and a focus on environmental stewardship, activities to benefit
society, and a commitment to build shareholder value by making PepsiCo a truly
sustainable company.
Our operations
PepsiCo is organized into three business units, as follows:
1. PepsiCo Americas Foods (PAF), which includes Frito-Lay North America (FLNA),
Quaker Foods North America (QFNA) and all of our Latin American food and snack
businesses (LAF), including our Sabritas and Gamesa businesses in Mexico;
2. PepsiCo Americas Beverages (PAB), which includes PepsiCo Beverages North
America and all of our Latin American beverage businesses; and
3. PepsiCo International (PI), which includes all PepsiCo business in Europe and all
PepsiCo businesses in Asia, Middle East and Africa (AMEA)
Your role
The digital world, like no other, can make a positive OR negative impact on the imprint
PepsiCo leaves on society. As a certified agency and vendor of PepsiCo, you are now an
important contributor to our corporate mission, working to assist us in continually making
improvement in all aspect of our digital projects. We look to you to help guide us and ensure
our brands deliver performance with purpose.
BIS vision
To be the PepsiCo business capability engine: powering solutions through connection,
transformation and innovation.
Connect the PepsiCo ecosystem – our associates, suppliers, customers, stakeholders and
consumers to drive business growth.
Transform and leverage our information assets to scale solutions that create greater
competitive advantage.
Innovate with new technologies and services so you can do business smarter, faster,
greener and cheaper.
BIS focus
We are transforming our IT practices with:
IT portfolio transformation
Retrained IT teams
Key policies and procedures, Major ethics rules, Equal opportunity policy, Sexual
harassment policies, Civil rights, Whistleblower Act, Procurement, Human capital policies
and procedures, Organization holiday schedule, Parking, Security policies and procedures,
Key security policies, Sensitive security information,
See the Process Activity Map – Web for additional process details.
The process activity map is a Microsoft Excel spreadsheet available on the
Digital Resource Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center.
See the Process Activity Map – Mobile for additional process details.
The process activity map is a Microsoft Excel spreadsheet available on the
Digital Resource Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center.
See the Process Activity Map – Social for additional process details.
The process activity map is a Microsoft Excel spreadsheet available on the
Digital Resource Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center.
In addition, these KPI’s can bring measurement standardization across brands and
business units and begin to set a foundation for cross brand measurement.
Process
This list will be maintained by the PepsiCo Business + Information Solutions (BIS) digital
interactive team and updates will be made by the team and re-circulated. This list should be
modified and updated no less than once per operating quarter.
(NOTE: Please reference this document when creating KPI’s and metrics for the business
requirements document.)
Business partner
BIS Digital
Interactive Specialist
Group
Agency
Notes
Customer service
Average cost per service option (call center, email, online chat, self-service)
Percent of support touches successfully served
Drivers to other support methods from site
Online search effectiveness (searches per visit, exit)
Survey results/exit survey scores
Commerce
Overall purchase conversion Effect on offline sales
Step-by-step conversion First time versus returning buyer
behaviors, conversions, and revenue
Average order size (AOS)
Lifetime value
Average order value (AOV)
Affinity analysis (product and site)
Analysis of purchase funnel defectors
Lead generation
Overall conversion Analysis of registration process
Step-by-step conversion analysis dropouts
via registration process Conversion of leads to actual customers
Conversions by campaign Value per lead based on conversion
Drivers to registration process
Customer reports
To help understand user behavior:
Content groups (designate pages with related subject matter)
Depth of exploration (ex: average page view per visit, length time, content
group exposure)
Pages of interest
o Content group segmentation (metric)
o On-site search engines (metric)
o Collecting scenario events (metric)
o Visit-to-exit ratio (the number of exits from a given page to the number of visits
for the same page)
Scenario event
Use to segment visitors who visit a page configured to track a step in a preconfigured
process – ex: registration.
Conversion step (segments visitors by those who view a page defined as a scenario
conversion step)
Scenario event time (segments visitors by the time that they visit a page defined as a
scenario step page)
Scenario name (segments visitors by the name of the scenario they view)
Visitor record
Segment visitors by characteristics such as demographics:
City Metropolitan statistical area (MSA)
State/province Primary metropolitan statistical area
Country (PMSA)
o Registered
Designated marketing area (DMA)
o Time of lifetime initial Ad ID
Lifetime initial ad ID o Time of lifetime initial visit
(segments visitors by the first ad o Time of most recent visit
they viewed as visitors to the site)
o Total viewing time
Lifetime page views (segments visitors o Visit count
by the total value of their purchases
over time)
Blogs
Volume of user participation Frequency of posts and comments on
Unique visitors the blog and competitors’ blogs
o Technorati ranking of blogs that
Country
mention the brand
Page views
o Technorati ranking of the blog and
Number of participants/members competitors’
Volume of user-generated content o Total number of conversations
Time spent (unique visitors to all sites talking
Number of brand mentions versus about the brand)
competitors o Total number of times the post has
Ratio of comments and trackbacks been tweeted or retweeted, saved to
(a method of counting other bloggers Digg, tagged in Delicious and
that reference the post) to posts on discussed on FriendFeed
the blog
Website communities
Traffic (number of people visiting the Unique visitors
community pages) Volume of user participation
Interactivity (number of members who Volume of user-generated content
participate in a specific conversation) Time spent
Civility (how civil the conversations are) Number of customer contracts
Content (what pieces of the content are Registration/leads
most/least popular)
Number of participants/members
Podcasts
Unique visitors Volume of user participation
Number of participants/members Volume of user participation
Click-throughs
Ratings/reviews
Number of participants/members Time spent
Volume of user-generated content Online sentiment (positive/negative)
Unique visitors Volume of user participation
Click-throughs
Widgets
Unique visitors Growth (average number of increase in
Number of participants/members users over a specific time period)
Influence (average number of friends
Click-throughs among users who have installed the
Page views application)
Number of installs Active users/widgets in the wild
(number of people using the widget on
Number of active users
a regular basis)
Audience profiles Longevity/lifecycle (how long a widget
Unique user reach or application stays installed by a user
before it is uninstalled)
Application/widget installs
Twitter
Volume of user participation Number of brand mentions
Online sentiment (positive/negative) Influence
Number of members/participants Number of pass-alongs
Click-throughs Number of click-throughs
Number of customer contracts Number of visitors coming to
Impact on brand awareness website from Twitter
Facebook
Number of fans Active users during the past 7 days
Total page interactions Active users during the past 30 days
Page interactions per post Canvas page views
Post quality Unique canvas pager viewers
Stream click-through rate (CTR) Number of application programming
interface calls (API) made
Discussion posts
Number of unique users on whose
Reviews
behalf the application made API calls
# of user who added the
Average HTTP request time for canvas
application tab
page
# of users who added the
Average Facebook Markup Language
application profile box to their profiles
(FBML) render time for canvas pages
# of users who added the
application information section
# of users who bookmarked the
application
# of users who subscribed to the
application emails
Mobile analytics
Session reports Event reports
Sessions All events
Session length App launches
Session frequency Sections
Page views
Users & usage reports
o Campaign parameters
Unique users o Video plays – all videos
Operators o Video plays – on demand video plays
Countries o Video plays – live video plays
Email - results
Total emails delivered
Number of emails sent to subscribers minus the number that were undeliverable
Clicks to date
Total number of times subscribers have clicked a link within this campaign
Click rate
Clicks To Date divided by total emails delivered
Forecasted clicks
Estimated number of clicks over a normal 8 week lifespan
Forwarded
Number of times a subscriber forwarded this campaign to someone else
Forward rate
Forwarded divided by total emails delivered
Favorability
Percent of respondents that answered they have a favorable opinion of a featured brand
(decoys were included)
Purchase intent
Percent of respondents that answered they were likely to purchase a featured brand or visit
a featured partner within 7 days (decoys were included)
"Is unique"
Percent of respondents that answered the featured brand or partner is unique (decoys
were included)
"Tell a friend"
Percent of respondents that answered they were likely to tell a friend about the featured
brand or partner (decoys were included)
Control
Email subscribers who were surveyed but not exposed to the featured partners and brands.
Their results were used as a baseline to measure the lift of attributable to the email offer.
Exposed
Survey respondents that received the featured offer.
LIFT
Percent increase of exposed respondents over control group for the specific metric.
Statistical significance
High degree of confidence that results are not due to chance (at least 90% probability).
Number of friends and brand mentions on other social network sites that may have a
larger presence in certain regions
By using a common template for collecting business requirements and ensuring important
brand goals and objectives are documented early in the process, project timelines can be
maintained and scope can be contained, for a successful, timely launch.
Process The business requirements document includes a RACI Chart, where the roles of team
members and stakeholders in the production and final signing of the business requirements
process document are identified. RACI stands for Responsible, Accountable, Consulted, and
Informed:
! Authorizes, has the ultimate signing authority for any changes to the document
R Responsible for creating this document
A Accountable for accuracy of this document
S Supports, provides supporting services in the production of this document
C Consulted, provides input
I Informed of any changes
Brand Marketing
A S
Representative
Agency
A S
Representative
Brand Director ! C
It is highly recommended that a Director level or higher be required to sign off on the
business requirements documents. This level of sign-off activity early in the project will help
to eliminate last minute, wholesale changes generally due to an oversight by senior
leadership on the goals and objectives of the project.
Signature
Deliverable Date Signature Comments
required
Online template
BRD content
BRD content The BRD online template includes these topics:
Executive summary
Business measurements and KPIs
Business requirements
Performance requirements
Risk analysis
Implementation plan
Timing
Warranty
Maintenance
Stakeholders and executive sign off
contents
PLACEHOLDER –
AWAITING DOCUMENT FROM LEGAL
This document provides testing strategy guidance for digital marketing projects. Testing
Objective strategy objectives include:
objective Documentation of well-defined testing objectives
Manage the timeliness of defect and issue resolution through a systematic defect
management process
Test results reported to PepsiCo are meaningful and assist PepsiCo and our
Business + Information Solutions (BIS) teams in making necessary on-going
management decisions. In addition, results which are captured are fed into a
continuous improvement process for digital projects across the organization.
Design: During this phase, the system under test is configured, the test execution
environment is installed, and test scripts and any test automation is completed in
preparation for test execution.
Execution: During the execution phase, the tests are executed, defects are tracked
to resolution, and metrics are collected and reported to the BIS digital specialist.
The BIS digital specialist is to use this guideline and methodology when reviewing testing
strategy and testing plans with the agency.
Discuss 3rd party integration and how this will expand the test plan.
Discuss how we can gather information regarding the requirements, both functional
and non-functional which will be the basis of test cases/test scripts.
Discuss how issues and defects will be tracked and managed to assure timely
resolution.
Identify key overall milestone dates in the current plan such as when the asset is
scheduled to complete development, and when the asset is scheduled for release.
WHAT: The objectives that are expected of the application, and the objectives of testing.
HOW: The detailed strategy or approach that will be taken to validate the objectives. This
should include documentation of test design criteria, agreement of entry/exit criteria, plans
for defect and issues management, expected deliverables to be created, and plans for
ongoing monitoring and results reporting.
WHEN: The planned milestone dates for test planning, design, implementation, and
execution of the testing.
WHO: Description of all the roles necessary (testers, DBA's, environment setup
people, etc.) and who will need to contribute to the testing.
WHAT IF: Description of the anticipated risks (i.e. what could go wrong) and how the project
team intends to address and manage them.
Once the test plan has been drafted, a walkthrough with all relevant stakeholders will be
held to present the contents of the plan, and gather feedback. This is very important,
as stakeholders will typically provide very valuable insight which can then be
incorporated back into the plan, making it more robust and effective. In addition,
walking through the test plan with stakeholders can avoid stakeholder disruption of
testing progress.
After the walkthrough, a new draft of the test plan will be created, incorporating all of the
changes resulting from the walkthrough discussions. This will be the baseline test plan
which should be utilized as the starting point for the design phase of the project.
Walkthrough asset (website, mobile application, social website)
Review agency‟s testing process
Identify test cases
Identify workload mix
Identify objectives
Prioritize tests
Review test environment
Review test team
Agree on successful test criteria and testing deadline
Completion criteria: Test plan created by agency and walkthrough completed
Ensuring that test design activities are regularly managed against the project plan and that
readiness is achieved is the goal of the test execution phase.
Defect management
Defect management is one of the key indicators used to measure both test progress and
quality. A well-managed defect tracking process contributes to the overall success of a
software project. System wide trends with environment or software development project
issues are addressed and solved with the proper metrics and defect resolution procedures.
This section describes the process for defect management. It includes details on the
processes to be followed when opening, analyzing, fixing, and retesting defects found
during the web or mobile project. This can include defects found in documentation,
processes, requirements, environments, etc., as well as software problems
Defects
Defect management is the process used to document, track, and close defects in the
system being tested. A defect is a variance from expectations, such as:
A bug in the code
An incorrectly stated requirement
An overlooked requirement
An incorrect function
A well-implemented function that is not wanted
A performance problem
Defects can be found at any point during a project. Each defect found on the project must
be logged to allow tracking and measurement.
Not all defects will pass through all status and some defects may pass through the same
status several times, as the lifecycle allows for some iteration. The status of the lifecycle is
described in more detail later in this document.
All errors detected during each testing phase of the project will be recorded, logged, and
have cause attributed. These measurable errors will then be used to establish the quality
levels of prior testing phases and will assist us in determining error forecast for the
remaining phases.
By categorizing errors, appropriate attention can be placed on problems that are of higher
criticality. Additionally, root cause analysis and other measurements can be collected and
performed. Classifying severity levels achieves the following goals:
Improvement of management call to problem resolution
Problems that are clearly documented and understood by all parties
Objectives that are measurable, tracked and reported on a regular basis
Clearly stated and agreed roles and responsibilities
Defect severity/priority levels are used to determine the impact of the defect on the testing
process and priority of fixes. Defects and their associated severity/priority level may also
impact whether the exit criteria have been met for testing.
Severity/priority level 1 and 2 defects are serious defects and require close communication
between testers, the business, and development teams during resolution and re-testing to
minimize the impact on the test schedule as well as the timelines in general.
The severity/priority levels code is used to classify the impact of the defect on the
application and the testing process:
Execute testing to create the desired functionality or workload volumes as indicated in the
designed test scenario(s).
Create/maintain defects – Make sure that any defects found are entered into the
appropriate defect tracking tool to ensure that they will be reviewed and corrected.
Create/maintain issues – Make sure that any project issues found, which might impact the
success of testing, are reported to the client assigned project manager to ensure that they
will be reviewed and resolved.
Complete analysis of each test and report results and observations – The IBM team should
analyze and interpret the data captured during testing and document any information of
value to help move forward.
Also it is important to ensure that any tuning that has been done is documented,
which might be required for the production environment prior to deployment.
Sign off: Review the final results and establish a consensus that testing has met the
success criteria and can be considered completed.
Execution activities
Execute testing
Conduct readiness review
Run test cases
Evaluate results
Report defects
Review defect fixes
Provide feedback to application developers
Re-run test scripts
Completion criteria: End of timeframe reached
Prepare summary
Develop recommendations
Summarize test results
Prepare report
Completion criteria: Summary delivered
Unit testing
Unit testing is the first level of testing after the code has been written and the first
opportunity for dynamic testing. It verifies the code, the internal logic, design, and the paths
within the module being tested for all new or changed code in a program. All error
conditions and exception conditions are generally tested at this time.
Functional testing
Functional testing assures that the website or application attributes satisfy the user
requirements.
Audit and controls – Verifies the adequacy and effectiveness of controls and
completeness of data processing results. This would include areas, such as voting, polling,
and loyalty rewards that may require data processing, audits, and controls.
Error handling – Verifies the system function for detecting and responding to exception
conditions. Completeness of error handling determines the usability of a system and
ensures that incorrect transactions are properly handled and there is no negative
consequence to the user experience.
Function – Ensures that the user's business functional requirements are met. Verifies that
each business function operates according to the business requirements document and the
detailed functional requirements documented in the design and concepting phase of the
project. Test conditions are generated to evaluate the correctness of the functional
requirements for both web site and mobile applications.
Multi-user – Verifies the ability of the website and/or application to process more than one
user‟s activity at the same time.
Installation – Verifies that applications can be easily installed and run in the target environment
and includes pre-installation verification and back out tests. This is important in 3rd party
applications and is addressed in Web and mobile process as „Review of 3rd Party Integration.
Regression – Verifies that, as a result of making changes to one part of the system or
required function that unwanted changes were not introduced to other parts.
Transaction flow – Verifies the proper and complete processing of a transaction from the
time it enters the system to the time of its completion or exit from the system.
BIS may assist agency and development firms in acceptance testing activities related to
functional testing. This includes support for execution of the test cases, defect tracking, and
defect resolution. It is anticipated that UAT tests will be a subset of the QAT test cases.
Entry criteria:
User acceptance test plan completed.
Test cases have been defined and are available.
A full operational/stable environment and application execution environment is in place.
Skilled resources have been trained, available and prepared.
A subset of the QAT test cases have been executed.
Exit criteria:
There are no outstanding severity 5, severity 4.
Any open severity 3 issues / defects must be formally accepted by PepsiCo/BIS as
not being necessary to resolve prior to exit of the QAT testing phase
Performance testing
Performance testing is designed to test whether the system meets the desired level of
performance in a production environment. Performance considerations may relate to
response time, turn-around time (through-put), CPU usage, memory and so on.
Entry criteria:
Performance testing environment is available/stable and need to be configured to
replicate production performance.
Application performance test requirements have been documented and agreed upon.
Load and performance test cases and test scripts developed.
All required performance monitors have been installed and configured.
Resources have been assigned and are available.
Exit criteria:
All test cases identified and agreed upon by PepsiCo/BIS have been executed.
The defined workload is executed at the target level.
All high priority performance defects if any have been addressed and closed.
Performance objectives are met, or a mutual agreement by both PepsiCo/BIS and
vendor is in place to address the results. Open issues have been
documented/addressed and an action plan is in place.
Test results documented and delivered.
Load and performance test is signed off completed by PepsiCo/BIS.
Entry criteria:
A suitable environment is available and operational
ORT Test cases created (Using the non-functional requirements)
Exit criteria:
Test results delivered and accepted by PepsiCo/BIS
Security scanning/testing
Based on the score coming from the risk assessment and process tailoring tool, security
scans should be deployed at the end of the testing phase based on low risk (simple scan),
medium risk (house scanning), or high risk (house scanning + static analysis).
Low risk- Scans for low risk sites can be performed by simple SaaS scanning that does not
require the SaaS consultant to review the results. The results can be optionally reviewed by
internal security.
Medium risk – Medium risk sites should require in house scanning that is reviewed by the
BIS security team or SaaS scanning that requires a consultant review.
High risk – High risk sites require in house scanning that is reviewed by the BIS security
team or SaaS scanning that requires a consultant review in addition to a static analysis.
The Pepsico Business + Information Solutions (BIS) digital interactive specialist will
Process complete the capacity planner and submit to the hosting provider (Savvis or other 3rd party
process providers) as a supplement to hosting planning and configuration. This will require meeting
with the brand and agency teams to discuss the capacity planning steps and review
previous website histories, proposed media calendars, and influencing events.
Note: Some of the information required in this capacity planner can be lifted from the
business requirements document and repurposed.
Capacity planning is the process of determining the website capacity and performance
Introduction capabilities required to meet the future business requirements effectively. In the context of
introduction capacity planning, "capacity" is the maximum amount of users that the website or a
particular function on the website is capable of handling in a given period of time.
Online template
The Capacity Planner Template is a Microsoft Word document available on
PepsiCo’s Agency Portal under the Forms, Tools & Reference section.
The Project closeout checklist is intended to capture requirements, gain all-party agreement
Objective on project closeout issues, and ensure the appropriate oversight is given to launch assets.
objective
The Pepsico Business + Information Solutions (BIS) digital interactive specialist will initiate a
Process project close out meeting within 10 business days of live deployment of a digital marketing
process project. The closeout meeting will include brand team representation and appropriate
agency/developer representation to gain agreement on necessary handovers and identify
any post-launch issues.
Online template
The Project Closeout Checklist online template is a Microsoft Word document available
on the Digital Resource Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center
The 30-90 day health assessment is intended to review and verify that the asset/website is
Objective meeting agreed Key Performance Indicator (KPI) and performance criteria outlined in the
objective business requirements document.
If results indicate that criteria have not been met, the brand representative and the PepsiCo
Business + Information Solutions (BIS) digital interactive specialist can determine a
recommendation and/or request to the agency for course correction. The BIS specialist will
also help the brand team determine whether course correction is part of the SOW
commitment or a new work order will be required.
At the project close meeting, the 30-90 Day health assessment is to be scheduled.
Process The BIS digital interactive specialist will prepare materials for review including the business
process requirements document, relevant KPIs, and performance criteria. The meeting should
include the BIS digital interactive specialist, the agency and the brand representative(s).
Online template
The 30-90 Day Health Assessment online template is a Microsoft Word document
available on the Digital Resource Center under the Forms, Tools & Reference section.
Path: www.mypepsico.com > My Groups tab > PepsiCo-wide > Digital Resource Center
Description When you design or modify software to allow access for persons with
different abilities, you make the software accessible. New software
description and applications, however, are introducing new problems and
barriers. There are complex graphics and multimedia applications
that assistive technology simply has not solved. One solution to
these new problems is to put accessibility in the hands of the
developer and content author. Developing a software application that
is accessible by persons with different abilities is relatively easy, as
long as the developer and author follow some basic guidelines.
Assistive technology is a piece of equipment or a software product that is used to increase,
maintain, or assist the functional capabilities of individuals with impairment or disabilities. In
short, it can be any device or technique that assists people in removing or reducing barriers
and enhancing their daily activities. Assistive technologies include screen or text magnifiers,
screen readers or software that reads an application aloud, closed captioning, keyboard and
mouse enhancements, voice recognition software, and highlighting software.
Meeting the standards of an accessible application first requires an awareness of the needs
of the users who have different abilities. The four main categories of disability are visual,
hearing, mobility, and cognitive/learning.
Visual
People with visual disabilities are individuals who are blind, have low vision, or have color
blindness. People who are blind need text comparables for the images used on the Web
page, because they and their assistive screen reader technology cannot obtain the
information from the image. A person who has a visual disability will not find the mouse
useful because it requires hand and eye coordination.
Instead, this person must navigate the application using only the keyboard. For example,
the Tab key is used to move the focus to the item that needs to be selected. A screen
reader then announces the item so the user knows where the focus is on the page. The
user then presses the Enter key instead of "clicking" the mouse button. Those who have low
vision need the assistance of a hardware or software magnifier to enlarge the text beyond
simple font enlargement. When information is presented by color alone, a person who is
color blind misses that information.
Hearing
People who are deaf or hard of hearing require visual representations of auditory
information that the application provides. Solutions for these disabilities include closed
captioning, blinking error messages, and transcripts of the spoken audio. The primary
concern is to ensure that audio output information is provided in a redundant comparable
visual form. Other solutions may include providing a consistent design and using simplified
language that may adapt better for those whose first language is sign language.
Mobility
People with disabilities that impact mobility have limited movement and difficulty with fine
motor controls, such as lifting, walking, and typing. Mobility impaired individuals experience
difficulties in using the computer's input devices and in handling storage media. Lack of fine
motor control for precise mouse clicks can be an inhibitor to a person with a mobility
disability. Solutions for persons with mobility disabilities include switches, latches, and
controls that are easy to manipulate, and media that are easy to insert and remove, as well
as alternate input devices. Touch screen computers can also pose a problem for people
with mobility issues, if said user lacks fine motor control to make screen selections or
artificial limbs which will not interact with screen. Additional solutions include alternate input
capabilities, such as voice input, simple keypads or the ability to enter information at the
user's own pace.
Cognitive
People with cognitive or learning disabilities, such as dyslexia and short-term memory
deficit, need more general solutions, which include providing a consistent design and using
simplified language.
For example, by using a template, a Web developer can reuse the same layout and design
for each page, so a person with a cognitive disability can more easily navigate through a
website. People with cognitive or learning disabilities can also benefit from redundant input,
such as providing both an audio file and a transcript of a video. By simultaneously viewing
the text and hearing it read aloud, they can take advantage of both auditory and visual skills
to comprehend the material better.
Broad objectives
Employer of Choice: by enabling people with different abilities to fully demonstrate
their capabilities through the elimination or reduction of physical and cultural job
barriers across our company and the expansion of recruitment and professional
development opportunities.
As we continue to innovate and build upon our understanding of opportunities, PepsiCo may
choose to add or update these goals to reflect the new technologies or standards that
become commercially viable.
Exceptions
Definitions of exceptions and undue burden do exist for this policy and require written
approval from the authoritative division executive.
Software accessibility
In addition to the checklist to help create accessible Windows-based software, the IBM
guideline includes resources such as helpful information about software accessibility test
tools and additional references on software accessibility issues.
http://www-03.ibm.com/able/guidelines/software/accesssoftware.html
Web accessibility
In addition to the checklist below, this IBM guideline provides the implementation and
testing techniques and information on tools to help create accessible websites and
Web applications.
http://www-03.ibm.com/able/guidelines/web/accessweb.html
Adaptable: Create content that can be presented in different ways without losing information or structure.
Information and relationships. Information, structure, and relationships conveyed through
presentation can be programmatically determined or are available in text.
Meaningful sequence. When the sequence in which content is presented affects its meaning, a
correct reading sequence can be programmatically determined.
Forms. Form element labels can be programmatically determined.
Tables. Table cells and relationships between cells can be programmatically determined.
Cascading style sheets. Web pages are readable without requiring style sheets.
Sensory characteristics. Instructions provided for understanding and operating content do not
rely solely on sensory characteristics of components such as shape, size, visual location,
orientation, or sound.
Distinguishable: Make it easier for users to see and hear content including separating foreground
from background.
Use of color. Color is not used as the only visual means of conveying information, indicating an
action, prompting a response, or distinguishing a visual element.
Audio control. If any audio on a Web page plays automatically for more than 3 seconds, either a
mechanism is available to pause or stop the audio, or a mechanism is available to control audio
volume independently from the overall system volume level.
Keyboard Accessible: Make all functionality available from a keyboard.
Keyboard. All functionality of the content is operable through a keyboard interface without
requiring specific timings for individual keystrokes, except where the underlying function requires
input that depends on the path of the user's movement and not just the endpoints.
Scripts. Scripts are keyboard accessible. If the content affected by scripting is not accessible, an
alternative is provided.
Applets, plug-ins, and non-HTML content. A link is provided to a directly accessible applet,
plug-in or other application. Alternate content is provided for those applets, plug-ins or other
applications that are not directly accessible.
No keyboard trap. If keyboard focus can be moved to a component of the page using a keyboard
interface, then focus can be moved away from that component using only a keyboard interface,
and, if it requires more than unmodified arrow or tab keys, the user is advised of the method for
moving focus away.
Java™ accessibility
Refer to the IBM guideline for a checklist to help create accessible Java™ 2 applications.
Also at the IBM link is the industry's only set of 100% Pure Java application development
guidelines for accessibility.
http://www-03.ibm.com/able/guidelines/java/accessjava.html
Hardware accessibility
This checklist can help identify if personal computers and server hardware are compliant.
http://www-03.ibm.com/able/guidelines/hardware/accesshardware.html
Yes/No Test
Test for accessibility using the techniques in each checkpoint.
Documentation accessibility
This checklist can help you create accessible informational documentation in
various formats.
http://www-03.ibm.com/able/guidelines/documentation/accessdoc.html
Can Spam
STANDARD
Description CAN SPAM refers to the law that sets the rules for commercial email,
establishes requirements for commercial messages, gives recipients
description the right to have you stop emailing them, and spells out tough
penalties for violations.
Enforcing stricter data privacy standards helps to ensure compliance to the current and
future laws pertaining to email, maintain a favorable customer relationship, and overall
protect the PepsiCo brand.
This standard should be applied to “any electronic mail message the primary purpose of
which is the commercial advertisement or promotion of a commercial product or service,”
including email that promotes content on commercial websites as stated in the current law.
Guidelines 1. Don’t use false or misleading header information. Your, “From,” “To,” “Reply-To,”
and routing information – including the originating domain name and email address –
guidelines must be accurate and identify the person or business who initiated the message.
2. Don’t use deceptive subject lines. The subject line must accurately reflect the content
of the message.
3. Identify the message as an ad. The law gives you a lot of leeway in how to do this, but
you must disclose clearly and conspicuously that your message is an advertisement.
4. Tell recipients where you’re located. Your message must include your valid physical
postal address. This can be your current street address, a post office box you’ve
registered with the U.S. Postal Service, or a private mailbox you’ve registered with a
commercial mail receiving agency established under Postal Service regulations.
5. Tell recipients how to opt out of receiving future email from you. Your message
must include a clear and conspicuous explanation of how the recipient can opt out of
getting email from you in the future. Craft the notice in a way that’s easy for an ordinary
person to recognize, read, and understand. Creative use of type size, color, and location
can improve clarity. Give a return email address or another easy Internet-based way to
allow people to communicate their choice to you. You may create a menu to allow a
recipient to opt out of certain types of messages, but you must include the option to stop
all commercial messages from you. Make sure your spam filter doesn’t block these opt-
out requests.
7. Monitor what others are doing on your behalf. The law makes clear that even if you
hire another company to handle your email marketing, you can’t contract away your legal
responsibility to comply with the law. Both the company whose product is promoted in
the message and the company that actually sends the message may be held legally
responsible.
Description The Children's Online Privacy Protection Act, effective April 21,
2000, applies to the online collection of personal information from
description children under 13. The rules spell out what a website operator must
include in a privacy policy, when and how to seek verifiable consent
from a parent, and what responsibilities an operator has to protect
children's privacy and safety online.
The standard is maintained by the FTC. This guide was prepared to help you comply with
the new requirements for protecting children’s privacy online and understand the FTC’s
enforcement authority.
Value
Ensure compliance to the current and future laws
Maintain a favorable customer relationship
Protect the brand
Area of use
This standard should be applied to websites that are collecting information from children
under the age of 13.These websites are required to comply with Federal Trade Commission
(FTC) Children's Online Privacy Protection Act (COPPA).
If you operate a commercial website or an online service directed to children under 13 that
collects personal information from children or if you operate a general audience website and
have actual knowledge that you are collecting personal information from children, you must
comply with the Children's Online Privacy Protection Act.
To determine whether a website is directed to children, the FTC considers several
factors, including the subject matter; visual or audio content; the age of models on
the site; language; whether advertising on the website is directed to children;
information regarding the age of the actual or intended audience; and whether a site
uses animated characters or other child-oriented features.
To determine whether an entity is an "operator" with respect to information collected
at a site, the FTC will consider who owns and controls the information; who pays for
the collection and maintenance of the information; what the pre-existing contractual
relationships are in connection with the information; and what role the website plays
in collecting or maintaining the information.
Privacy notice
Placement
An operator must post a link to a notice of its information practices on the home page of its
website or online service and at each area where it collects personal information from
children. An operator of a general audience site with a separate children's area must post a
link to its notice on the home page of the children's area.
The link to the privacy notice must be clear and prominent. Operators may want to use a
larger font size or a different color type on a contrasting background to make it stand out. A
link in small print at the bottom of the page – or a link that is indistinguishable from other
links on your site – is not considered clear and prominent.
The notice to parents must be written clearly and understandably, and must not contain any
unrelated or confusing information. An operator may use any one of a number of methods to
notify a parent, including sending an email message to the parent or a notice by postal mail.
The FTC continues to use a sliding scale approach to parental consent that varies based on
the use of the child’s personal information. Information obtained for internal purposes has
less rigid requirements than situations where the information may be shared with others
outside PepsiCo. In this case, a more reliable consent method is needed.
Public disclosures
When operators want to disclose a child's personal information to third parties or make it
publicly available (for example, through a chat room or message board), the sliding scale
requires them to use a more reliable method of consent, including:
Getting a signed form from the parent via postal mail or facsimile.
Accepting and verifying a credit card number in connection with a transaction.
Taking calls from parents, through a toll-free telephone number staffed by trained
personnel.
Email accompanied by digital signature.
But in the case of a monitored chat room, if all individually identifiable information is stripped
from postings before it is made public – and the information is deleted from the operator's
records – an operator does not have to get prior parental consent.
Exceptions
The regulations include several exceptions that allow operators to collect a child's email
address without getting the parent's consent in advance. These exceptions cover many
popular online activities for kids, including contests, online newsletters, homework help, and
electronic postcards .
Access verification
At a parent's request, operators must disclose the general kinds of personal information
they collect online from children (for example, name, address, telephone number, email
address, hobbies), as well as the specific information collected from children who visit their
sites. Operators must use reasonable procedures to ensure they are dealing with the child's
parent before they provide access to the child's specific information.
They can use a variety of methods to verify the parent's identity, including:
Obtaining a signed form from the parent via postal mail or facsimile
Accepting and verifying a credit card number
Taking calls from parents on a toll-free telephone number staffed by trained
personnel
Email accompanied by digital signature
Email accompanied by a PIN or password obtained through one of the verification
methods above .
Timing
The Rule covers all personal information collected after April 21, 2000, regardless of any
prior relationship an operator has had with a child. For example, if an operator collects the
name and email address of a child before April 21, 2000, but plans to seek information
about the child's street address after that date, the later collection would trigger the rule's
requirements. In addition, come April 21, 2000, if an operator continues to offer activities
that involve the ongoing collection of information from children – like a chat room – or
begins to offer such activities for the first time, notice and consent are required for all
participating children regardless of whether the children had already registered at the site.
Safe harbors
Industry groups or others can create self-regulatory programs to govern participants'
compliance with the Children's Online Privacy Protection Act and Rule. These guidelines
must include independent monitoring and disciplinary procedures and must be submitted to
the Commission for approval. The Commission will publish the guidelines and seek public
comment in considering whether to approve the guidelines. An operator's compliance with
Commission-approved self-regulatory guidelines will generally serve as a ―sa fe harbor‖ in
any enforcement action for violations of the Rule.
Enforcement
The Commission may bring enforcement actions and impose civil penalties for violations of
the rule in the same manner as for other rules under the FTC Act. The Commission also
retains authority under Section 5 of the FTC Act to examine information practices for
deception and unfairness, including those in use before the rule's effective date. In
interpreting Section 5 of the FTC Act, the Commission has determined that a representation,
omission or practice is deceptive if it is likely to:
Mislead consumers; and
Affect consumers' behavior or decisions about the product or service.
Checklist Location
checklist 1. Is there a link to your privacy policy on the homepage of your website or on the homepage of the
children’s area of your website?
If YES, go to the next question.
If NO, place a link to your privacy policy in the appropriate places.
2. Are the links to your privacy policy near each and every place on your website where you collect
personal information from children?
If YES, go to the next question.
If NO, review the areas where you collect personal information from children and put links to your
privacy policy near each of these places.
You must deliver what your privacy policy promises.
3. Does the link to your privacy policy stand out so that the website visitor can locate it easily?
If YES, describe how the link stands out:
_____________________________________________________________________________
Go to the next question.
If NO, change your link by using contrasting colors, changing the font or type size, or creating a
noticeable icon.
5. Is the link to your privacy policy labeled clearly so a visitor can tell what it is?
If YES, record the label of your link:
______________________________________________________________________________
Go to the next question.
If NO, change the link to your privacy policy so that a casual visitor can tell what it is.
6. Does your privacy policy include the names of all the website operators who collect or maintain
personal information from children through your site?
If YES, go to the next question.
If NO, revise your privacy policy to include the name of each operator.
The person most familiar with your site’s information practices should complete this checklist.
Content
7. Does your privacy policy provide mailing addresses for all the website operators who collect or
maintain personal information through your site?
If YES, go to the next question.
If NO, does the privacy policy provide contact information (mailing address, telephone number
and email address) for one operator who, in turn, will respond to inquiries from parents on behalf
of the other operators?
If YES, go to question 10.
If NO, revise your privacy policy to include full contact information for each operator who collects
or maintains personal information from children through your website, or for one operator who
will respond to all inquiries.
8. Does your privacy policy provide the telephone numbers for all website operators who collect or
maintain personal information through your site?
If YES, go to the next question.
If NO, revise your privacy policy to include telephone numbers for all operators.
9. Does your privacy policy provide the email addresses of all website operators who collect or
maintain personal information through your site?
If YES, go to the next question.
If NO, revise your privacy policy so it includes email addresses.
10. Does your privacy policy state each type of personal information (full name, email address, mailing
address, phone number, etc.) that you collect from children?
If YES, go to the next question.
If NO, revise your privacy policy so it tells each type of personal information the site collects.
11. Is your statement of the types of personal information collected descriptive? Is it specific enough to
let parents know the kinds of personal information you will be collecting from their children?
If YES, go to the next question.
If NO, revise the statement to be more descriptive.
12. Does your privacy policy tell parents whether personal information is collected actively — that is
from the child — or passively — for example, through the use of cookies?
If YES, go to the next question.
If NO, revise the privacy policy to tell parents how your website collects personal information
from children.
13. Does your privacy policy tell parents how your website will use the personal information that it
collects?
Yes, go to the next question.
No, revise the privacy policy so it gives parents that information.
14. Does your website share or disclose children’s personal information with third parties?
If YES, go to the next question.
If NO, go to question 19.
15. Does your privacy policy state what kinds of businesses the third parties are engaged in?
If YES, go to the next question.
If NO, revise the privacy policy.
16. Does your privacy policy tell parents the general purposes the third parties will use their children’s
personal information for?
If YES, go to the next question.
If NO, revise the privacy policy.
17. Does your privacy policy state whether the third parties that your site shares personal information
with have agreed to maintain the confidentiality, security and integrity of the information?
If YES, go to the next question.
If NO, revise the privacy policy to address whether the third parties have agreed.
18. Does your privacy policy tell parents they can agree to the collection and use of their child’s
personal information by your site without agreeing to you disclosing the information to third parties?
If YES, go to question 20.
If NO, revise the privacy policy to tell parents they have the right to consent to your
site’s collection and use of their child’s personal information, while saying no to your disclosure
of the information to third parties. Then go to question 20.
19. Does your privacy policy clearly state that your website does not disclose personal information to
third parties?
If YES, go to the next question.
If NO, revise the language in your privacy policy to explain that the website doesn’t share
children’s personal information with third parties.
20. Does your privacy policy state that your site cannot condition a child’s participation in an activity on the
child’s disclosure of more personal information than is reasonably necessary to participate in the activity?
If YES, go to the next question.
If NO, add appropriate language to your privacy policy.
21. Does your privacy policy let parents know that they can review the personal information that your
website has collected from their child?
If YES, go to the next question.
If NO, revise the privacy policy to tell parents they have the right to review the information the
site has collected from their child.
22. Does your privacy policy tell parents how they can review their child’s personal information?
If YES, go to the next question.
If NO, revise the privacy policy to let parents know how to review their child’s personal
information.
23. A. Does your privacy policy tell parents they can have their child’s personal information deleted
from your site?
If YES, go to the next question. If NO, revise the language in the privacy policy.
B. Does your privacy policy tell parents how they can have their children’s personal information
deleted from your site?
If YES, go to the next question. If NO, revise the privacy policy.
24. A. Does your privacy policy tell parents that they can stop your website from further collecting or
using the additional personal information from your child?
If YES, go to the next question. If NO, revise the privacy policy as appropriate.
B. Does your privacy policy tell parents how they can stop the further collection and use of their
child’s personal information?
If YES, go to the next question. If NO, revise the privacy policy.
Style
25. Is your privacy policy clear and understandable? Easy to read? Consider testing it with potential
readers.
If YES, go to the next question.
If NO, rewrite and simplify the privacy policy so the parents of your visitors would be likely to find
it easy to read and understand.
26. Does your privacy policy give a complete description of your information practices? Does it explain
all the personal information you collect? Does it spell out how you will use the information?
If YES, go to the next question.
If NO, review the privacy policy and add information to make the description complete.
27. Does your privacy policy include any contradictory, confusing or ambiguous language?
If YES, review the privacy policy and revise to remove confusing or ambiguous wording.
If NO, go to the next question.
28. Does your privacy policy contain any material or content that doesn’t relate to your information
practices?
If YES, edit the policy so it focuses on your information practices
If NO, go to the next question.
30. Do your practices reflect the promises you make in your privacy policy?
If YES, keep up the good work.
If NO, go back to square one.
Value
Protect sensitive customer data while stored in a database or moving between
systems.
Area of use
This standard applies to systems and applications that collect and store personal
information.
It should be noted that the data privacy requirements of Austria, Switzerland, and Italy
consider information related to legal entities (such as company name) to be PII as well.
"Sensitive personal information" (SPI) must receive a higher level of protection than PI that
is not sensitive.
The following data elements are always considered SPI within PepsiCo and collection or
retention of any below information will require approval by PepsiCo’s Business +
Information Solutions (BIS) function.
It is the responsibility of the process owner, creator, or person assembling the data to
assess the risks related to potential misuse or disclosure of the data and to classify and
protect that data appropriately.
References http://portal.acm.org/citation.cfm?id=1244046&dl=ACM&coll=DL&CFID=5107481&CFTOKE
references N=28454000
Privacy International – a human rights group formed as a watchdog on surveillance and
privacy invasions by governments and corporations.
Privacy Foundation – the Privacy Foundation researches technologies and their privacy
and security implications.
Consumer Freedom and Privacy – conference is venue for public debate on computing,
privacy and freedom.
Understanding Privacy from BBBOnline – provides tips for consumers and privacy
managers.
PrivacyExchange.org – is an online resource for consumer privacy and data protection
including laws, practices, issues, trends and developments worldwide.
TRUSTe – is a nonprofit initiative to certify and monitor web site privacy, email policies and
practices, and resolve consumer privacy problems. IBM is a member.
BBBOnline – provides privacy resources for small businesses and consumers.
Online Privacy Alliance – a corporate group supporting self-regulatory initiatives to
increase individuals' privacy online and in electronic commerce.
Center for Democracy and Technology – their mission is to promote democratic values
and constitutional liberties in the digital age.
Privacilla.org – "Privacy policy from a libertarian pro-technology perspective."
Value
The records management policy protects sensitive customer data while in the database or
routing between systems. This helps ensure customer trust and protect our brand.
Implementing a data retention policy is necessary to improve and/or maintain the overall
performance of various system functions. Without implementing a data retention policy,
systems are subject to decline in transaction response times, backup/recovery processes,
and overall system administration. In addition, unmonitored space requirements cause an
increase in the cost of both physical hardware and support services.
Area of use
Required – Customer, promotional, and tracking data should leverage a data
retention plan.
Detail This document provides some of the critical data retention schedules for customer facing
applications. For a complete listing, please reference the PepsiCo Record Management
detail Policy and the PepsiCo Records Retention Schedule.
Legend
Code Definition
C Current Year
EXP Expiration or termination date, including the expiration date of a contract,
patent, permit or warranty; the expiration of a confidentiality obligation; the date
on which a lawsuit or dispute is concluded by a final court judgment or
settlement; date the matter is deemed closed; the date of an asset disposition;
the date when a document is superseded; the termination of active employment;
the abandonment of a trademark
P Permanent
TA Denotes records that must be kept for Tax Audit purposes and that, upon the
expiration of the stated retention period, will require approval by the Tax
Department prior to destruction. Questions should be addressed to the Tax
Department.
Value
Why do we own them?
We need to own our assets. Owning DNS records helps us in multiple ways: brand
protection; internal and external sharing of information; email, promotional, and defensive
reasons; along with other business reasons.
Area of use
This standard applies to registration and management of all PepsiCo domain names.
Brand sponsor – a brand representative initiates the request by defining the domain name
and the business unit who will own the domain name. The brand team also makes decisions
on whether to pursue a domain name that is externally owned.
Digital interactive specialist – Acts as the contact point for the project. The specialist
insures the overall development process is managed and followed.
Any variation from BIS DNS servers requires approval of security and legal.
Scenario I
Domain name requestor contacts BIS DNMA via email with request.
If request comes from a vendor, internal contact must be included.
A request should include SAP cost center code, business unit, domain and other key
information.
Approval from internal contact is obtained by BIS DNMA.
Legal to be contacted if trademark infringement clearance is necessary.
Domain name is purchased by BIS DNMA via CSC NC2 or email.
Requestor/internal contact is notified via email of successful purchase.
CSC will only act on requests that come from an approved user.
Only DNMA’s are authorized to approve a new user ID, abandon a domain name, or
change DNS.
Sonya Coleman – Frito-Lay Legal – purchasing and registration rights for Frito-Lay
Deborah Ann Luttrell (Paralegal) – FLNA CCTLD (International names) – purchasing and
registration rights for PepsiCo
Joe Feretti (VP of legal) – FLNA CCTLD (International names) – purchasing and
registration rights for PepsiCo
Janet Silverberg - QTG CCTLD (International names) – purchasing and registration rights
for PepsiCo
Kelly Lasponara – Pepsi CCTLD (International names) – purchasing and registration rights
for PepsiCo
Jeanne McCabe - Pepsi CCTLD (International names) – purchasing and registration rights
for PepsiCo
Shanta Castillo – Pepsi GTLD (domestic names) – purchasing and registration rights for
PepsiCo
Presently the domain name administrators are Bryan Deluca and Anna Raisor
Billing
Billing needs be established before any domain name orders can be submitted.
Contact a domain name administrator and provide 2 internal names along with address and
phone. Your business unit will be established and you will be billed monthly and directly
from CSC.
Transfers
Existing domain names or domain names registered outside this established process need
to be transferred into your business unit which is part of PepsiCo’s domain name portfolio.
There are many variables and each will be addressed individually. Contact your domain
name administrator for additional/current information.
For $100 you are able to order an evaluation of the domain name to get a clear
understanding of the market value in addition to other pertinent information.
We use a third party for negotiating. Rules and costs vary, depending on country and type
of domain name. All exchanges of funds and domain names occur through an escrow
account so we remain anonymous until the transaction is complete. Further detail is
available upon request.
ID creation
Yes/No
Persons requesting ID creation for access to the CSC NS2, contact BIS,
domain name management administrator.
All CSC NS2 access requests must be accompanied by the respective
trademark attorney.
BIS DNMA receives request and reviews for access business requirement
and access restrictions.
BIS DNM determines access rights.
Upon approval BIS DNM will contact CSC via email to have the ID created
with appropriate access rights.
ID deletion
Yes/No
Respective legal groups’ trademark attorney initiates the ID deletion process.
Trademark attorney notify BIS DNMA.
BIS DNMA to communicate deletion to CSC.
BIS DNMA contacts CSC for deletion.
BIS DNMA reviews CSC NS2 access every 90 days. Any ID creation not
active for 180 days will be will be disabled by BIS DNMA.
detail Roles
DNS management administrator – The DNS process is managed by the DNS
administrator. It is the administrator’s job to shepherd the request through the naming
process.
*Important: the DNS management administrator leverages special tools to perform a
search for the domain name. Publicly searching a domain name from a public registry
may allow domain squatters to grab the name.
Brand sponsor – a brand representative initiates the request by defining the domain name
and the business unit who will own the domain name and the country for which the domain
is being purchased.
Digital interactive specialist – Acts as the contact point for the project. The specialist
insures the overall development process is managed and followed.
DNS specialist – Pre-configures the domain names within the DNS servers. Pre-
configuration is sometimes required for international domain name purchases.
Hosting Security
STANDARD
Description This standard defines the hosting requirements for all PepsiCo
applications and infrastructure projects which require 'production'
description oriented server and/or storage hosting services in any geography
or country.
PepsiCo’s Business + Information Solutions (BIS) group is the information technology (IT)
function at PepsiCo. BIS partners with Savvis to host the consumer-facing websites for the
brands of PepsiCo Corporate, Quaker, Tropicana, Gatorade, Frito-Lay, and limited PepsiCo
international websites. Savvis is responsible for providing a solid, secure, and reliable
Internet hosting environment that is based on standard hardware and software
configurations that enable each brand’s interactive agency to independently develop and
manage its content.
Area of use
This document should be reviewed by each brand’s interactive manager and then provided
to the interactive agency and their developers prior to any design or development. Please
familiarize yourself with the information in this document as it will ensure a smooth and
efficient deployment of your site to the PepsiCo Universal Hosting Environment (UHE).
Stakeholders
Marketing Brand team – Internal marketing managers assigned to one or more brands and
given the authority to represent and conduct business on behalf of the brand.
Interactive Agency – External partner contracted by the marketing brand team to design,
develop, and maintain the content of a consumer-facing website.
Hosting Vendor – External partner Savvis provides all hardware, software, and connectivity
for consumer-facing websites.
Quaker/Tropicana/
Frito-Lay PepsiCo Corporate PepsiCo Beverages
Gatorade
The interactive agency works with the BIS liaison on all initial correspondence for new sites
and major changes to any site. This includes any change to the hosting environment that
requires the hosting vendor’s involvement. Once the relationship has been established, the
interactive agency will be provided a direct hosting vendor contact to discuss requests and
for any technical issues. Please copy your BIS liaison on all communications with the
hosting vendor. The interactive agency does not need to involve the hosting vendor or BIS
with standard content changes.
Domain Name (URL) - New domain registration complete prior to campaign planning
by working with PepsiCo Domain Management.
Shared Website and Application Hosting with separate Production and Staging
environments
Firewall (traditional) and Application Firewall Security
Secured FTP (sFTP) access to staging and production environments
Load balancing on high usage sites
UHE service offerings
o Recipes service (SOAP protocol)
o Product locator service
o Consumer response feedback service
Disaster recovery and backup
Urchin 6.6 Web analytics and reporting
Outbound SMTP email service (i.e., send to a friend). Mass mailings not permitted.
URL monitoring
Automated backups
DR failover
ASP.NET 1.1, 2.0, or 3.5 sp1, PHP 5.1.6 or 5.3.1 with Zend
Software
PHP 5.2.9-2 Engine v2.3.0, Perl, Tomcat
Any other software necessary should be communicated as part of the Hosting Access
Request Form. Any incremental cost will be allocated to the site.
OpenSSH/Telnet access
RDP/Terminal Services (console) access
CMS platforms other than Telerik Sitefinity and OpenText red.dot
Mass mailing campaigns or “email blasts” generated within the UHE or using UHE
resources. Sending email blasts should not be done within our UHE servers because
of the risk of becoming blacklisted as a spammer.
Email hosting
Flash Media Server hosting (contact BIS liaison for preferred vendors)
Note: PepsiCo does not currently have a PepsiCo-preferred third-party email blasting
vendor. Please work with your BIS liaison to discuss your specific needs.
Common links
For Frito-Lay sites, the following pages are provided on fritolay.com and should be linked
rather than recreated for all brand sites:
Mission statement
The council mission is to maintain and enforce standard support processes, procedures and
best practices; effectively manage the technical footprint; meet the needs of the business;
manage change, and review financials.
Domain/DNS management
Domain name management
All domain names used for PepsiCo promotions must be acquired and owned by PepsiCo.
PepsiCo’s DNS servers must be in each domain record. In the event a domain is owned by
an interactive agency or other 3rd party, the PepsiCo Domain management team must be
contacted to execute the ownership transfer process. Request additional information.
To expedite requests, please contact your division’s BIS liaison or send all requests
and questions to domain_management@pepsico.com.
Approval from the Brand team is required to process a new domain name request.
Response times for a domain name request can vary greatly so please do not
proceed with a campaign until the domain name has been confirmed by the Domain
management team.
Upon request and with brand cost approval, domain name ownership can be blocked
for viral or secret promotions.
Upon request, domain names can be configured to a generic "coming soon" page.
Recommendation regarding use of subdomains:
www.sitename.com/promotion,
NOT www.promotion.sitename.com
Neither example above requires purchasing a domain. However, using
www.promotion.sitename.com requires setup of a new website, while using
www.sitename.com/promotion does not. When appropriate, BIS recommends using
the www.sitename.com/promotion format to save setup time and maintenance cost.
Feedback Form – BIS can provide a common interface that can be re-skinned and placed
on any brand website. The form will submit data directly into the consumer response
database. Allow 15+ business days after contacting BIS consumer response team for a
contact us function to be fully integrated.
Product Locator Integration – This is a Flash web application that returns store location of
PepsiCo products. Users drill down through a product hierarchy then specifying their zip
code to find product availability.
Phone / Postal Mail – The standard consumer affairs contact information can be placed on
the website similar to the back panel of packaging.
BIS does not recommend or support the creation of a stand-alone database or application
on a brand website that stores detail consumer information subject to privacy laws. Any
exception to this guideline must be approved by PepsiCo Legal and submit to BIS review.
Urchin provides robust statistical tracking capability. It is not recommended for interactive
agencies to utilize other 3rd party capabilities (such as Google Analytics) without discussing
the requirements with the BIS liaison.
BIS will provide the interactive agency a separate document called Internap General Usage
Instructions as well as the necessary credentials for accessing the CDN if it determined to
be necessary during the initial hosting request discussion.
The usage of the CDN does introduce some complexity to the development process and
possibly additional charges. Thus, small sites with minimal traffic should discuss with BIS
usage of the CDN.
Internap is also providing optional video transcoding services in combination with CDN
hosting of the videos for an additional cost. This service helps deliver a standard user-
generated content (UGC) capability.
In addition, the UHE firewall implements IP filtering. Only agency static IP addresses behind
a firewall will be granted access. DHCP assigned IP addresses are not allowed. This static
address is the agency outbound firewall address not the internal workstation address.
Disaster recovery
A disaster recovery program is designed to provide for the rapid restoration of business
processes immediately following a natural or man-made emergency, or in the event of a
disaster, political turmoil, or criminal action. IT assets can only be resumed quickly with a
proper level of preparedness.
What tools does the hosting provider use for network intrusion detection?
What tools does the hosting provider use for host intrusion detection?
What type of monitoring / alerting do you have in place in order to quickly
resolve an outage?
Is there any monitoring in place to gather usage statistics such as number of
users on the site, page views and concurrent sessions? Please describe the
data collection and reporting process?
Is there a disaster recovery plan in place?
references
STANDARD
Value
This standard:
Addresses compatibility with chosen platforms
Area of use
Since mobile devices can differ in functionality and screen size, it is difficult to create a one-
size-fits-all set of standards and guidelines. Although this document provides high-level
guidance, it is highly recommended to refer to specific standards guides developed for
major market leaders such as Apple, Google, and BlackBerry. Links to these standards
guides include the following:
Recommended:
Web Services – Web services should be REST based leveraging XML or JSON responses.
Out-of-the-box, Android does not come with the SOAP service client library such as Apache
Axis, but Android does come with a robust set of Apache.http libraries, XML parsers (Dom,
sax, XMLpull), and the JSON parser.
User Data – In general, user data should be kept on the on the device. If data collection is
necessary, the data should be encrypted before it is sent. A privacy policy should also be
added to the application indicating to the user what information is going to be transmitted.
Landscape and Portrait Modes – Applications should support both portrait and landscape
modes when appropriate. OpenGL games for devices such as Android or iPhone can
support either mode. Requirements should clearly state what modes and devices will be
supported including, but not limited to emerging tablet devices.
Required – The no frame rule in the Mobi registrant rules is probably the easiest rule to
comply with. Frames are not supported on many mobile devices, and using them may have
unpredictable results. Frames are also considered as being generally problematic on the
desktop web also, since they make a web document less accessible.
To ensure that your site is in compliance with this rule, ensure that the home page of your
site has no FRAME, IFRAME or FRAMESET elements in it.
Recommended:
Site Map – Create a simple site drill-down architecture, nesting content into well-labeled
categories. Drill down should not go more than five levels deep.
Linking Pages – Limit links on a page to 10. Assign access keys [0-9] to the links to ensure
compatibility with older phones and create easier navigation.
Link Prioritization – Place links that are popular or you want to receive more activity at
the top of the page. Less active links are placed lower. This creates an ease of use for the
end-user.
Recommended:
XHTML-MP 1.0 – Standard presentation language for most modern mobile devices.
XHTML-MP 1.0 is based on XHTML-Basic, and most modern mobile devices can leverage
CSS mobile for style sheets to control page layout. For increased compatibility with a
broader range of wireless devices developers may also want to deploy equivalent WML
pages. Ready.mobi provides an excellent tool for checking mobile sites for XHTML-MP 1.0
compatibility.
Frames – Frames can be problematic for desktop browsers, but they are considered
unusable for mobile devices. Developers should avoid the use of frames and iFrames for
mobile development.
Plug-ins and Scripting – Plug-ins should be avoided since most devices including the
Apple iPhone do not handle plug-ins such as ActiveX, Adobe Air, and Adobe Flash.
Although devices such as the Apple iPhone and Android devices can interpret JavaScript,
mobile web apps should run reasonably well without the use of JavaScript. If more complex
scripting that is targeted for a specific device can be used then alternate, simplified pages
should be created for general mobile use.
Tables and Nested Tables – Due to the size of screen layouts, rendering inconsistencies
and established general best practices for web design, tables and nested tables should be
avoided in favor of style-based layouts.
BlackBerry – http://us.blackberry.com/developers/
Tools
Droid Draw – http://www.droiddraw.org/
Value
The standard assembles in one place the information about monitoring norms for many
industry-standard resource types associated with web application development.
Detail The Resource Monitoring Standard outlines definitions, criteria, and reference materials for
the monitoring of situations associated with filesystems, memory, CPU, processes, etc.
detail across an array of platform and operating system resources, such as:
AIX Windows
HP-UX Active Directory
UNIX Adaptive Apache
Syslog DB2
URL monitoring Oracle
Windows OS Unix OS
RedHat Linux MS Cluster
SUSE Linux MS Exchange
Solaris MS Exchange 2007
AL SNMP RedHat MS IIS
AL SNMP SUSE MS SQL
AL WMI Windows VMWare
The AIX resource monitoring worksheet is illustrated here. The spreadsheet also provides a
template to define monitoring criteria for other resource types.
STANDARD
Overview...................................................................... 7.10.6
Application security overview................................................................................................ 7.10.6
Application security goals ..................................................................................................... 7.10.7
Application security framework ............................................................................................. 7.10.9
Risk-based approach for application security ....................................................................... 7.10.9
Risk assessment considerations ........................................................................................ 7.10.11
Application security mechanisms ........................................................................................ 7.10.13
Design & development................................................ 7.10.14
Access controls .................................................................................................................. 7.10.14
ID standards ....................................................................................................................... 7.10.14
User names / passwords .................................................................................................... 7.10.15
Value
By ensuring that all information systems meet the same minimum security hardening standards,
PepsiCo can ensure the protection of its information assets against known threats and
vulnerabilities. Additionally, by ensuring uniform hardening, the Information Security Group can
quickly analyze any new or emerging threats to determine the possible exposure of PepsiCo
information security assets and develop an appropriate remediation response:
Introduction This document provides a summary of the minimum configuration requirements for security
hardening of enterprise applications in use by PepsiCo. These requirements are based upon current
technologies, known and anticipated vulnerabilities, and threats. These requirements may change
introduction as technology and threat landscape evolve. This document assumes applications are installed on
hardened operating systems.
Scope of document
This procedure defines the minimum requirements and directives for infrastructure security
hardening for the following applications:
Applications currently in use on the PepsiCo network.
Applications that do not adhere to the new standard set forth in this document may continue
to be attached to the network. A remediation plan and timeline must be developed and
approved by the Security Council.
This document does not address operating system specific hardening and assumes
applications are installed on hardened and secured operating systems.
Ownership of document
Ownership and maintenance responsibilities for this document belong to the PepsiCo Information
Security Group (ISG). Please contact ISG by emailing DL - BIS Security Working Group.
The benefits of Web Applications including global accessibility, open source and rapid development
opportunities increase these threats exponentially:
Application Security is about securing the business data (for confidentiality and integrity) and its
accompanying infrastructure (files, databases, mail / ftp servers, etc.). Lack of security awareness
and deadline force developers to focus only on the functionality completeness, overlooking the
security aspects of the code. Application attacks comprise the majority of recent security attacks.
These attacks are not only common, but also severe. If an application has security vulnerabilities, it
can allow an attacker to access privileged data, delete critical data, and even break into the system
and operate at the same priority level as the application—giving the attacker the power to destroy
the entire system. Securing the network, OS, and server but neglecting to secure the application is
like building a luxury palace, but leaving its main gate open and unguarded.
This could be a serious concern for the application stakeholders as the recent standards and laws
such as PCI Data Security Standard, Sarbanes Oxley Act, etc. focus more on mandating application
security. To reiterate: there have been more security vulnerabilities reported in applications
compared to network and network related components in the recent days.
Alternatively, the intent is to increase ―work factor,‖ which is defined as the effort required by an
intruder to compromise one or more security measures. An architecture with a high work factor is
difficult to break into, while one with a low work factor can be compromised relatively easily. The
architecture implements security related controls at each layer including;
Application Security Architecture
Policies
Standards / Procedures
Training and Education
Technology and Testing
Monitoring and Enforcement
Metrics for Continuous Improvement X
2. The potential impact is MODERATE if: The loss of confidentiality, integrity, or availability could
be expected to have a serious adverse effect on organizational operations, organizational
assets, or individuals. A serious adverse effect means that, for example, the loss of
confidentiality, integrity, or availability might: (i) cause a significant degradation in mission
capability to an extent and duration that the organization is able to perform its primary functions,
but the effectiveness of the functions is significantly reduced; (ii) result in significant damage to
organizational assets; (iii) result in significant financial loss; or (iv) result in significant harm to
individuals that does not involve loss of life or serious life threatening injuries.
3. The potential impact is HIGH if: The loss of confidentiality, integrity, or availability could be
expected to have a severe or catastrophic adverse effect on organizational operations,
organizational assets, or individuals. A severe or catastrophic adverse effect means that, for
example, the loss of confidentiality, integrity, or availability might: (i) cause a severe degradation
in or loss of mission capability to an extent and duration that the organization is not able to
perform one or more of its primary functions; (ii) result in major damage to organizational assets;
(iii) result in major financial loss; or (iv) result in severe or catastrophic harm to individuals
involving loss of life or serious life threatening injuries.
Associates shall display a banner on PepsiCo's operating systems and network equipment
during login, if system software allows. Following is a PepsiCo-approved login banner:
―THIS SYSTEM AND ALL RELATED INFORMATION ACCESSED THEREBY ARE THE
PROPERTY OF PEPSICO, INC., AND ARE FOR THE SOLE USE OF THOSE PERSONS
EXPRESSLY AUTHORIZED BY PEPSICO. CONTINUED USE OF THIS SYSTEM IMPLIES
CONSENT TO MONITORING AND AN UNDERSTANDING THAT RECORDING AND/OR
DISCLOSURE OF ANY DATA ON THE SYSTEM MAY OCCUR AT PEPSICO'S
DISCRETION."
Associates may change the text to suit regional language and legal requirements, as
appropriate.
ID standards
ID creation shall follow PepsiCo's approved naming conventions, where applicable.
History Failed
Platform Characters Expiration Consists of (password Inactivity Attempt Mitigating Control
remembered) Lockout
Mainframe At least 8 90 days Numbers, letters 4 No Setting 5 Execute script that evaluates and auto disables
(ACF2) logons after 60 days of inactivity.
UNIX At least 8 12 weeks No complexity No setting 70 b Daily Syslog failed login report.
(Solaris) enforcement
Distribute advisory to users to remind to users
capabilities
regarding complexity and password history.
Windows At least 8 90 days Complexity enabled 12 No setting 5 Monthly report generated that identifies accounts not
used in 60 days. Accounts manually disabled.
UNIX (AIX) At least 8 12 weeks Complexity enabled Histsize=12 No setting 5 Run script that identified inactive accounts. Accounts
manually disabled.
LDAP At least 8 90 days No complexity 12 No setting 5 Distribute advisory to users to remind to users
enforcement regarding complexity and password history.
capabilities
SAP At least 8 90 days SP1 – No setting 5 No setting 5 Execute program that evaluates and auto disables
logons after 60 days of inactivity and password
SP4 – Complexity
history.
enabled (letter,
numbers, specials)
VAX At least 8 90 days Numbers, letters 12 No setting 5 Execute script that evaluates and auto disables
logons after 60 days of inactivity.
Review
Platform Characters Consists of Mitigating Control
Frequency
VAX At least 15 Numbers, letters Annually Non-interactive and for local logon only.
Password standards
Password length
All passwords must have at least 8 characters.
The application must not allow blank passwords.
The application must not enforce a maximum length on passwords.
Users should be encouraged to choose long pass phrases.
Password complexity
Passwords must be case-sensitive, and all passwords must have at least two of the following three
types of characters:
At least one upper case alphabetical character
At least one lower case alphabetical character
At least one numeral
The application should enforce password quality controls such that the password cannot contain:
The user‘s name (first, middle, or last)
The account‘s userid
The portion of the user‘s email address before the @ symbol
The user‘s challenge question or secret answer
Spaces or non-English characters.
Passwords must not include the company name (PepsiCo, Frito Lay, etc.)
Passwords must not have more than 3 of the same character
Repeating characters in a password are not allowed (example: aaa, ggg, etc.)
Sequential characters in a password are not allowed (example: abc, xyz, etc.)
To ensure additional password strength, the use of common words, common names, and commonly
chosen passwords must be disallowed. This can be accomplished via a local dictionary of such
common words and phrases.
Password history
The user must be prohibited from reusing any of their previous 8 passwords.
The password history must consist only of hashes of previous passwords, and never their
original, clear-text form. Also see password hashing requirements.
Synchronize system clocks to ensure log accuracy. Application access shall log, at a
minimum, the following:
o Date / time
o Request status
o Terminal / node ID
o Associate authentication credentials
o User activity (e.g., failed login attempts)
o System activity (e.g., unexpected reboots)
o Program-specific log file activity (e.g., excessive or unusual file transfers)
o Log failed and succeeded access attempts.
Maintain audit logs of critical security events.
Implement centralized audit-logging scheme, where possible, to securely store audit logs.
Implement access control to protect audit logs and records against tampering (e.g., deletion
or alteration).
Restrict privileged accounts from access to the audit logs, audit records, and audit
configurations.
Ensure there is sufficient system storage so log files are not overwritten.
Retain audit logs for a minimum of 30 days.
Comply with PepsiCo Retention Policy -
https://www.mypepsico.com/ep/corp/Policies/policy15.htm
Authentication
The application must not be susceptible to authentication circumvention.
Secondly, when the client navigates to a new website, the browser could send the URL containing
the credentials to the new site via the HTTP REFERER field. Finally, intermediary systems such as
firewalls and proxy server could log the GET requests. Anyone with access to these logs can read
the URL and use it in an attack
For example, SQL queries can reveal table names and can easily be edited in the query string to
attack the backend database and view or edit data. A safer, though imperfect, alternative for passing
sensitive information is the POST method. Data submitted over POST is not visible in the browser‘s
location bar and is not logged by web server. POST data can be sniffed off the network, however,
and must therefore be encrypted when used for submitting confidential data.
Login Activity: ―You last logged in on September 22, 2008 at 11:24 PM, four days and two
hours ago, from 10.22.22.21 (some.server.ng) apparently located in Mali‖. NOTE: If possible
display the last three to five logins, and provide an interface to view the data historically.
Display User Activity:
o a) viewed your XXXXXXXX
o made changes to YYYYYYYYY (this will help them refresh their memory if they
cannot remember if they've really logged in those days or not)
This kind of display allows a user to notice that someone is silently accessing his account.
Avoid use of basic and digest authentication
With Basic Authentication, the browser transfers password information to the web server in Base-64
encoded form, rather than in encrypted form. An attacker who is monitoring the network traffic can
capture the credentials and easily decode the password. Digest Authentication solves this main
problem with Basic Authentication by applying cryptographic hashing to the user credentials.
Neither scheme provides logout capabilities.
The data and credential privacy concerns of the two schemes can be mitigated by using HTTPS.
The security community, however, considers both types of authentication on the weak end of the
security spectrum and recommends against their use [2].
try {
return false;
} catch (Exception e) {
//ignore
The secure approach is to deny access by default and to specifically identify the conditions under
which access is allowed [10]:
try {
return true;
} catch (Exception e) {
//ignore
Authorization
The application must not be susceptible to authorization circumvention. Application business logic
must be written with proper authorization controls such that user access to restricted resources and
actions is based on the user‘s identity and roles. The application must not permit users to access
data for accounts other their own. The application must restrict access to personal data to those who
have a business purpose to view or use it.
If you are not using built-in framework authorization facilities, ensure that your customized
authorization routines are centralized.
If you are not using built-in framework authorization facilities, then ensure that calls to your
centralized authorization routines are placed at the beginning of each protected resource view or
action. This will help prevent unauthorized access to sensitive resource and action URLs that might
have been guessed by users.
Use logical tier separation and patterns such as Model-View-Controller instead of directly
accessing protected resources from the web tier.
Ensure that model code checks that the requesting user should have access to the protected
resource.
Ensure that the code requesting the resource has adequate error checking and does not
assume that access will always be granted. Failure cases should be accounted for.
Avoid use of client-side tokens
Do not trust any client-side authentication or authorization tokens in headers, cookies, hidden form
fields, or in URL arguments unless they have been cryptographically secured via signing or
encryption.
Authentication
Authentication Tokens: Authentication tokens created by PepsiCo code to authenticate one server
to another should only work between short time range (to allow for clock differences between
servers). These tokens must be restricted to ―
one‖ use during that time range. Tokens should utilize
variable length when possible.
Session Management
Use built-in frameworks
Use a robust, well-know session manager built into the web application framework.
Use the most up-to-date version of the session management framework for your platform.
Monitor security mailing lists and vendor security announcements to stay apprised of any
weaknesses that might have been found in the session management framework.
Maintain Session State on the Server Only
The application must maintain all user session state (authentication, authorization, and role data) on
the server only. For user authentication and authorization, the application must not rely on any data
stored on the client other than the session identifier. Session state must be tied to a specific browser
session through the use of session cookies. If it is unavoidable to store some session data on the
client, the application must encrypt that data strongly during round trips between the server and the
client. Additionally, hidden fields should not be used to pass sensitive state information between the
browser and the server, unless the sensitive information is encrypted during transit.
Secure Coding
This section provides some coding guidelines which will help eliminate or reduce coding flaws that
can lead to security vulnerabilities.
Database Calls
Use PreparedStatements with “bind variables” to prevent SQL injection.
The application code must never use unchecked input values within SQL statements. Input values
must be validated for type, length, syntax, and range [5]. In addition to input validation, the
application must properly escape all characters that are acceptable to the application but are
dangerous within the context of SQL statements, such as single quotes (‗), which might be
acceptable within name fields.
To solve this problem, the application should use JDBC PreparedStatements with ―bind variables‖
(also called Parameterized PreparedStatements) as the JDBC driver automatically escapes all input
arguments to parameterized PreparedStatement calls.
It is important to note that using PreparedStatements without bind variables does not necessarily
prevent SQL injection attacks. See the OWASP write-up [5] for more details on SQL injection
prevention using parameterized vs. non-parameterized PrepareStatements.
Use Limited Privileges
Database connections should be created using limited privilege accounts. The application should not
login to the database using sa or dbadmin accounts.
Cryptography
Web applications should use the algorithm specifications listed in the following table to ensure that
strong cryptography is being used to protect confidentiality and integrity of sensitive data.
Algorithms Key size
Symmetric Algorithms AES At least 128 bits
Asymmetric Algorithms RSA At least 2048 bits
Message Digest Algorithms SHA-224, SHA-256 Not applicable
Validate cookie data: Before using any cookie data, examine cookie content to verify that
they are not storing malicious content by performing proper input validation for type, length,
syntax, and range.
Patching
As patching technology evolves and attackers develop new methods to exploit vulnerabilities, the
management of computer security becomes increasingly critical in maintaining the integrity of the
business infrastructure. As a proactive initiative, security patch management is the primary line of
defense for protecting a corporate computing infrastructure.
Security patch management is patch management with a focus on reducing security vulnerabilities.
Security patch management as a functioning procedure ensures that all identified software updates
are in place, thereby eliminating vulnerabilities from the environment and mitigating the risk of
computers being compromised.
Ensure successful testing of a security patch by first taking the following steps.
Understand the files, functions and operations of the security patch
To ensure that all groups (e.g., server, application or desktop groups) comprehend the full impact of
its installation, the following questions should be answered by the individuals (e.g., security team
members or tool administrators) responsible for patch management:
What problem does this patch solve?
What systems are affected?
What files are affected?
Does the target system require a reboot?
Does the target software process require a restart?
Does the patch have an uninstall feature?
If the patch or uninstall fails, how can the system be recovered?
Change control is executed according to the priority level of the patch. For example, if a patch is
categorized as "Emergency" or "Red," an expedited version of the change control procedure is
implemented to ensure the patch is installed within the required timeframe.
Security patch testing and deployment phase:
A security-related patch can affect many different parts of a system depending on the issue is it is
supposed to fix and what is contained within the patch to do so. Therefore, testing must be included
in the patching procedure and conducted for each patch planned for deployment.
The goal of testing is to ensure that when a patch is deployed, the system's operations and
applications are not impacted and business is not interrupted. To achieve this goal, the following
minimum conditions must be met, and their success documented, before proceeding to the
deployment phase:
The testing environment simulates a majority of the targeted platforms
The software delivery process succeeds on the targeted test platform
The patch is installed on the target platform without significant issues
Previously functioning operations on the target platform continue to operate after installation
of the patch
The patch is successfully removed in case of problems
If any of these conditions is not met, additional testing is performed prior to deploying the patch onto
a vulnerable system. A few iterations may be required to ensure successful deployment and to
reduce the risk of negatively impacting the affected system.
The verification process involves checking the related files, binary versions, and registry settings to
confirm the patch has taken effect.
Patch verification must use methods that check for the specific characteristics of the patch. The
verification process is primarily conducted by the tool, unless the tool is not capable of doing so,
then it must be done manually.
Review patch status
The change control procedure -- be it a tool, ticket or form -- should be updated as each step is
completed. Also, a report should be generated to record the status of each patch. As part of the
report, the patch management team should receive the following information:
Number of systems successfully patched
Number of systems that failed patching or were unsuccessfully patched
Summary indicating why the failures occurred and the follow-up steps
Reboot request reporting
Number of systems that were omitted from the process, which is typically provided within the
accompanying exception report
Summary indicating why these systems were omitted from the process
Reporting effectiveness
Application Testing
Application testing is a method of evaluating the security of an application by simulating an attack
as that of a malicious hacker. The process involves an active analysis of the system for any
weaknesses, technical flaws or vulnerabilities.
Applications must be tested and evaluated to validate that the developed system complies with the
functional and security requirements. Testing of security controls is based on technical security
specifications. The testing must be scoped to test the relevant security requirement as it is intended
for use in its environment. For repeatability, the testing process must be capable of the execution of
a series of tests against an information system more than once (or against similar systems in
parallel) and yield similar results each time. For iteration, each system will be required to execute
functional tests in whole or in part a number of successive times in order to achieve an acceptable
level of compliance with the requirements of the system. To achieve this, functional testing will be
automated to the degree possible, and the test cases will be published, in detail, to ensure that the
test process is repeatable and iterative.
Only test or ―stub‖ data should be used during system development. Absolutely no operational,
security-relevant, or personally identifiable information (PII) should reside within any system or
software during development.
Source Code Review
It is the process of checking a web application's source code for security issues. Many serious
security vulnerabilities cannot be detected with any other form of analysis or testing including
penetration testing. With availability of source code, a tester can accurately determine what is
happening (or is supposed to be happening) and remove the guess work of black box testing.
This testing must be performed during code development and prior to promoting the code into
production environment.
Penetration Testing
Penetration testing is also commonly known as black box testing or ethical hacking. Penetration
testing is essentially the ―
art‖ of testing a running application remotely, without knowing the inner
workings of the application itself, to find security vulnerabilities. Typically, the penetration test team
would have access to an application as if they were users. The tester acts like an attacker and
attempts to find and exploit vulnerabilities. In many cases the tester will be given a valid account on
the system.
1 2 3 4 5
Deliverables
Objectives and Scope statement
Summary report of the engagement
Detailed Report:
- Vulnerability Assessment
- Activity report detailing steps to gain privilege
- Reporting evidence of test
- Recommending counter measures to fortify security posture
The Request for Third Party Security Review form is found at this link:
https://www.mypepsico.com/ep/common/security/portfolio/third-party/thirdparty-review.htm
Do NOT provide external parties access to the organization‘s information until the appropriate
controls are implemented as required in the third party security assessment.
Implement only PepsiCo approved encrypted standard for securing data-at-rest and in-motion.
Currently approved encryption and hashed algorithms are:
MD5
SHA-1 with 128-bit or 160 bit key
Blowfish
Triple-DES
Pretty Good Privacy (PGP)
Secure Socket Layer (SSL)
Advanced Encryption Standard (AES)
Appendix C: References
[1] OWASP Guide to Building Secure Web Applications and Web Services
(http://www.owasp.org/index.php/OWASP_Guide_Project)
[2] RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication
(http://www.ietf.org/rfc/rfc2617.txt)
[3] RFC 2965 - HTTP State Management Mechanism
(http://www.faqs.org/rfcs/rfc2965.html)
[4] Mitigating Cross-site Scripting With HTTP-only Cookies
(http://msdn2.microsoft.com/en-us/library/ms533046.aspx)
[5] Preventing SQL Injection in Java
(http://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java)
[6] OWASP Top 10 2010 (http://www.owasp.org/index.php/OWASP_Top_Ten_Project)
[7] What is HTTP TRACE? (http://www.cgisecurity.com/questions/httptrace.shtml)
[8] Understanding Malicious Content Mitigation for Web Developers
(http://www.cert.org/tech_tips/malicious_code_mitigation.html)
[9] Hypertext Transfer Protocol – HTTP/1.1
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.38)
[10] US-DHS Build Security In – Design Principles - Fail Securely
(https://buildsecurityin.us-cert.gov/daisy/bsi/articles/knowledge/principles/349.html)
[11] US-DHS Build Security In – Guidelines – Use Well-known Cryptography Appropriately and
Correctly (https://buildsecurityin.us-cert.gov/daisy/bsi/articles/knowledge/guidelines/334.html)
STANDARD
Description Social networking is the art of connecting with those who share
common interests. This includes several networking sites including
description but not limited to Facebook, LinkedIn, MySpace and Flickr. These
networks are a community that helps keep you united with others
and offers many benefits. For example, people have been
“facebooking” each other for about six years now, making Facebook
the most used social network with over 350 million users worldwide.
Networking via social media sites has revolutionized how we use the
Internet and is at the forefront of next level of evolution of the Web.
Issues
Social networking sites have received fair amount of review and scrutiny because of well-
known exploits as well as security issues inherent in the technologies utilized by these
providers.
In a recent post on the Social Media Security blog, ethical hacker James F. Ruffer III of
Unibox explained how with access, a hacker can control every aspect of the victim’s
Facebook profile, including the victim’s Facebook pages. He added, “Once I am in, the
victim has to check secure browsing, log out, and log back in,” he says. “That’s the only way
to destroy my attack vector.” Firesheep is a Mozilla Firefox browser extension and utilizes
packet sniffing methods to intercept unencrypted cookies or sessions.
In “sidejacking,” although the hacker doesn’t have control over the victim’s account, they
have mirrored what the victim is doing from his or her browser onto theirs. Due to the high
level of attention this security flaw demanded, a Mozilla Firefox plugin called Blacksheep
was quickly developed to detect if Firesheep is being used on a network, Blacksheep tries
to create “false” sessions IDs on a network to see if the sessions are being hijacked.
Hackers can also use Firesheep to extend their access to Social Media Management
platforms and still get simultaneous control of all the victim’s profiles from there, even if the
https secure browsing is enabled.
MySQL
For the database, Facebook utilizes MySQL because of its speed and reliability. MySQL is
used primarily as a key-value store as data is randomly distributed amongst a large set of
logical instances. These logical instances are spread out across physical nodes and load
balancing is done at the physical node level.
A list of Facebook’s open source developments and a few of the essential tools that
Facebook has developed are included here.
Cassandra (database)
Cassandra is a database management system designed to handle large amounts of data
spread out across many servers. It powers Facebook’s Inbox Search feature and provides a
structured key-value store with eventual consistency.
Application Canvas
The application canvas is the page on Facebook servers where an application lives.
Application canvas pages are accessed through the apps.facebook.com domain. For
example, the application canvas URL for a fictional game called “Goatworld” might look like
this: http://apps.facebook.com/goatworldgame/. The application canvas page will either be
Facebook markup language or an external site hosted within an IFRAME.
FBML
Applications written using the Facebook markup and scripting languages instead of the
traditional HTML and JavaScript. When a user accesses the application canvas page, the
Facebook proxy pulls down the FBML from the application servers and translates it into
HTML before rendering in the user’s browser. It follows that the application code runs in the
apps.facebook.com domain. These applications can access Facebook user data directly
using FBML, but may also make calls to the Facebook REST API servers.
iFRAME
Applications that are written using traditional web development languages such as HTML,
JavaScript, CSS, and run on the developer’s application servers in an IFRAME hosted in the
Facebook application canvas page. These applications cannot use FBML directly, so they
tend to rely on components from Facebook Connect, such as XFBML and the JavaScript
client library, as well as the Facebook REST API.
Security The first step in securing any application is to outline the required
security
guidelines security guarantees your application needs to make, and then to
guidelines select mechanisms that support those guarantees. For a Facebook
application, the security challenges are slightly different than a
regular application. The following is a non-exhaustive list of important
items that a Facebook application developer has to keep in mind
when thinking about security.
Access Controls
Authentication
Secure Handling Of Credentials
Handling Of Sensitive Data Over Post
Use of Fail-Safe Login Mechanisms
Streaming of Data to Internal Clients
Authorization
Use of Client-Side Tokens
Session Management
Cryptography
Infrastructure and Communications Security
PepsiCo site shall be configured to use the Secure Canvas and Tab
5. Third Party Partner Integration
iFrame calls a secure URL.
Environment and application level scans shall be conducted on third party
environment
6. Data – Dependent the business requirement and PepsiCo approval
Transmission - data shall be encrypted in motion (i.e. https via Secure Socket
Layer (SSL)).
Database – data must be encrypted
11. An error in the Zend engine related to nested array variables that can be exploited to
crash a PHP application.
12. A weakness is caused due to the use of an uninitialized variable when calling
"php_rand_r()" within the "mcrypt_create_iv()" function of the mcrypt module if
MCRYPT_RAND is passed as a parameter, which may result in a weaker encryption
(PHP 5).
An information leak occurs when system data or debugging information leaves the program
through an output stream or logging function.
Example: The following code prints an exception to the standard error stream:
<?php
echo "Server error! Printing the backtrace";
debug_print_backtrace();
?>
This information can be dumped to a console, written to a log file, or exposed to a remote
user. In some cases the error message tells the attacker precisely what sort of an attack the
system is vulnerable to. For example, a database error message can reveal that the
application is vulnerable to a SQL injection attack. Other error messages can reveal more
oblique clues about the system. For example, it could include information about the type of
operating system, the applications installed on the system, and the amount of care that the
administrators have put into configuring the program. This leads to excessive information
and provide clear path of exploitation and unauthorized activity.
A common example of this vulnerability is a web page which takes values from request
parameters and includes them directly in HTML or JavaScript without validation or
sanitization. Consider an example PHP page from an application which displays a
username passed in via GET request parameters. The source of this page contains the
following code:
< ?php
?>
Now imagine that a malicious user tampers with the request parameters and enters the
following string in the username field:
When the browser renders this page, the script tag that was entered as the username will
be written to the source of the page. The browser will parse it as HTML and the script will be
executed. The malicious user can then exploit this vulnerability against other users by
creating a request such as the following:
http://example.com/displayUserName.php?username=< script>alert(document.cookie);<
/script>
The attacker must then convince their victims to load the malicious request in a browser with
an active session on the vulnerable site. The attacker may do this by disguising the link with
a tiny URL service and putting it in a place logged in users are likely to visit, such as a
forum, or by posting it on a Facebook page. When victims load the malicious request in their
browser, the attacker injected script will execute and the user’s session cookie will be
revealed to the attacker (in a real world scenario the script would contain something much
more malicious than an alert box). For example, the SAMY MySpace worm was propagated
by exploiting an XSS vulnerability2. The attacker could also use an XSS vulnerability to
rewrite the source of the page so that it becomes a convincing phishing page, or a page
which prompts users to install malware. Even cautious users may be tricked, as the page
originates from a domain which they trust. This attack can be used in many different ways to
compromise the user’s browser and session, and is also usually very easy to exploit
< ?php
if(ctype_alnum($username)) ($_GET[“username”])){
$username = htmlentities($username);
echo(“Your username is:”.$username);
} else {
echo(“The username you entered contains invalid characters”);
}
?>
The conditional statement use the built in PHP function ctype_alnum to verify that the string
entered contains only alphanumeric characters. The htmlentities function is a built in PHP
function which output encodes un-trusted data so that it is safe to use in the HTML context,
so “<” becomes “<” and “>” becomes “>”. The user controlled data from the GET request is
now safe to write to the source of the page.
CSS and iFrames can scan your LAN from the internet
By exploiting features in CSS and using iFrames to check if the default IP address exists,
it’s possible to get your network address range quite easily providing the network device
uses the default out of the box IP address.
URL redirection
iFrames also allow to perform redirection so you can have access to URLs which normally
wouldn’t be accessible.
Signature verification
Signature verification using the application secret must never be done on the client side, as
this would expose the secret. Always perform signature verification using server code. The
signature verification process is different depending on the type of Facebook application.
Platform applications
In platform applications, Facebook will send the signature and other parameters as part of
the GET or POST request. The application should grab the Facebook parameters from the
request parameters, and recalculate the expected signature value using the signature
generation algorithm, or the built in function from the Facebook client in use.
Signature generation
Signatures must be generated in order to call sensitive APIs and in order to re-calculate the
signature as part of the verification process. The Facebook PHP library includes functions
for performing signature generation. For server side code, the application should generate
the signature using these API functions or by re-implementing the signature generation
algorithm. For client side code such as Flash, JavaScript, mobile and desktop applications,
which cannot use the application secret directly, there is an alternate secret used to
generate the signature: the session secret. The session secret can be used to call many
APIs, but there are some API functions that can only be called with the application secret. In
this case, the client side application should create a simple, server-hosted proxy which
makes the necessary API calls and relays the result back to the client side application.
Depending on the type of application, there are several different options for retrieving the
session secret.
The session proxy is simply a callback to an application server which then makes the
auth.getSession call on the server and returns the resulting session variables back to the
iPhone application. Ensure that the call to auth.getSession is made at an HTTPS endpoint,
as this is required to protect the session secret from being revealed to network attackers
when it is sent back to the application.
The other option is use the Facebook Connect API via a Web browser embedded in the
application. In this case, the application developer must direct the embedded browser to
Facebook login pages with specific URL parameters which direct Facebook to return the
session information. One of these parameters contains the URL to which the user will be
redirected after they successfully login. The session secret can then be retrieved from this
URL and passed back to the application. The session secret can then be safely stored on
the user’s system until they close the application.
Flash
Flash applications will be passed the Facebook parameters as flashvars from their hosting
page. The hosting page must validate the signature on the server side before passing it to
the SWF object, as the application secret cannot be safely stored in the SWF. This is due to
the fact that SWFs can be downloaded by an attacker and easily decompiled in order to
retrieve any secrets used in the ActionScript. The ActionScript API can then use the session
secret passed in these variables to generate signatures for further API calls.
One common example of a CSRF vulnerability and protection mechanism that is used is the
password update feature of many web applications. It is a common requirement that the
user enter their current password as well as their new password in a password update form.
This requirement is in fact a CSRF protection mechanism (as well as adherence to other
design principles).
In some cases the Facebook signatures can provide protection from CSRF attacks, but they
cannot be relied upon in all circumstances.
The use of the HMAC_sha1 hashing algorithm is significantly stronger than the MD5
hashing algorithm used by Facebook, which has been proven to be vulnerable to some
attacks.
The Facebook signature is not sent with all requests. The Facebook signature is not always
available for use as a CSRF protection token.
Prevent XSS attacks by using a combination of input validation and output encoding. Most
class libraries include functions for performing output encoding. While output encoding
provides strong protection against XSS, it is best to perform data validation before
encoding. The validation and encoding should always be performed on the server side, and
should be done using a whitelist of known good data. Instead of searching the data for bad
characters, check that the string matches the expected format based on the type of input.
For example, if the user controlled data is a postal zip code, validate that the data is
numeric, rather than searching the data for “<” characters. It is always harder to enumerate
the possible bad data, than to enumerate the possible good data. Validating user controlled
data before use is simply the correct way to write code, and along with helping to prevent
XSS vulnerabilities, will make the application run more smoothly as a whole. Output
encoding can then be used for further protection, catching any data that could not be
cleaned during input validation.
To better understand the issues facing Flash applications, let us consider a fictional Flash
based iFrame platform application called “Goatworld”, which is a game where players build
teams of goat buddies with their Facebook friends. Users can send goat buddy requests to
their Facebook friends, and the more goat buddies the user has, the higher level they obtain
in the game.
Cross
cross domain
By default, the Flash runtime enforces the same origin policy and SWFs are only allowed to
connect back to their domain of origin. If the SWF needs to communicate to servers other
domain than its domain of origin, the crossdomain.xml policy file must be in place to grant access.
policy The cross domain.xml policy will grant communication to that server from SWFs hosted on
police the domains specified. When a SWF attempts to make the connection, it will check for the
crossdomain.xml file in the web root of the domain it is attempting to connect to. It is very
important to properly configure this policy file so that it restricts the access it allows.
< cross-domain-policy>
< /cross-domain-policy>
This dangerous configuration allows access from any domain, effectively enabling Flash
content on any site to attack your application. This would allow an attacker to host your
SWF on their site, and although the SWF’s domain of origin is now the attacker’s, the SWF
can still make calls back to its original domain because of the badly configured
crossdomain.xml file in place. This gives the attacker control of the flashvars the SWF uses,
and would allow the attacker to, for example, provide a different value for the fb_sig_user
parameter and other Facebook parameters passed to the SWF. This also allows any
domain to make cross domain AJAX calls to your server, read data, and send custom
headers with requests. This can lead to a whole host of serious issues.
For example, consider a SWF whose domain of origin is sometimes foo.example.com, and
sometimes bar.example.com, but it always needs to call back to code on example.com. The
policy file hosted at example.com should then look like this:
< cross-domain-policy>
< /cross-domain-policy>
This will allow the SWF to be hosted at either the foo or bar sub domains, but will not allow it
to be hosted at the attacker’s site. Furthermore, it will not allow arbitrary domains access to
the server through cross domain requests.
Require HTTPS
Any administrative pages must be served only over HTTPS in order to protect from local
network attackers. This should be followed even if the administrative portion of the
application is served only internally, to protect from rogue insider attacks. The application
can still use the Facebook API by using Facebook Connect with SSL to authenticate and
then transferring the session to the server side in order to make admin API calls which
require the application secret. The session transfer process is described in detail here:
http://wiki.developers.facebook.com/index.php/Using_Facebook_Connect_with_Server-
Side_Libraries.
References
The Open Web Application Security Project –
references https://www.owasp.org/index.php/Facebook
Description This standard addresses using REST and SOAP in the development
of web services for use in both internal and external applications.
description The document provides a description of each method, and best
practices for when to use each method.
Value
Through consistent implementation and standard based interface definition, robust service
oriented architecture solutions can be developed and integrated. Common tools can be
used and cost can be reduced.
Area of use
This standard applies to application-to-application communication for applications and
components deployed that have the following characteristics:
XML for both request and response messaging and/or message payload.
APIs
A concrete implementation of a REST Web service follows four basic design principles:
Be stateless.
One way to achieve this level of usability is to define directory structure-like URIs. This type
of URI is hierarchical, rooted at a single path, and branching from it are subpaths that
expose the service's main areas. According to this definition, a URI is not merely a slash-
delimited string, but rather a tree with subordinate and superordinate branches connected at
nodes.
Hide the server-side scripting technology file extensions (.jsp, .php, .asp), if any, so
you can port to something else without changing the URIs.
Instead of using the 404 Not Found code if the request URI is for a partial path,
always provide a default page or resource as a response.
Give client applications the ability to request a specific content type that's best suited for
them. Construct your service so that it makes use of the built-in HTTP Accept header, where
the value of the header is a MIME type.
JSON application/json
XML application/xml
XHTML application/xhtml+xml
An envelope that defines a framework for describing what is in a message and how
to process it.
For more information on SOAP 1.1 (SOAP 1.2 is not supported by the Web services tools),
refer to www.w3.org/TR/SOAP
So the question to be asked is: What if the interface changes and the integration breaks?
If that's no big deal or easy to fix, use REST; otherwise, use SOAP/WSDL.
Value
Establishing a common set of reporting criteria provides the means to establish norms and
recognize fluctuations for individual systems, as well as to compare and analyze information
across different systems.
Web Analytics
Key metrics and key performance indicators (KPIs) to be reported are based on categories
from the Web Analytics Association:
Hardware reporting
Weekly hardware reporting will include these categories, each with different associated data
points to be captured:
CPU
Network
Services
Online template
The Reporting Standard spreadsheet is available as a template to capture and report
data. The template is a Microsoft Excel file on PepsiCo’s Agency Portal under the Forms,
Tools & Reference section.
Development Phase
Part 2
Online See the Web Application Certification online template on PepsiCo’s Agency Portal under
online
template
the Tools, Forms & Templates section.
template The following pages give examples of work products that may be required during the
certification process.
Figure 2
The system architecture diagram depicts
the components of the architecture and
how the components interact with each
other. It provides an additional level of
detail and shows the main nodes of the
architecture. The nodes are components
with a clearly defined functional role to
play in the architecture. Well-structured
application programming interfaces
(APIs) and protocols are required
between nodes. The nodes are logical
constructs and do not correspond directly
to servers.
Akamai will grab data from the origin that is expired from its cache or not in its cache.
The Tribal Firewall – resides in the demilitarized zone (DMZ) and allows only HTTP
traffic to enter into the network.
The load balancers distribute load across the Zend platform.
Figure 3
Architectural flow diagram
Table 1
Database The database overview provides an overview of pertinent user information to be used with
database the database capacity and in planning for proper sizing and user configuration. The
overview database overview can contain visual depictions of the databases and how they interact
overview with various applications within the solution.
Table 2
Deployment The Deployment matrix shows the mapping between software (deployment units) and the
deployment logical servers (nodes) by convention. Nodes are shown in the columns (with the column
matrix headers as the node names) and deployment units as rows. The deployment units should
matrix contain the version number of each software selection being deployed.
PHP
Content application
Software Web server Search management Database server Version
RedHat
enterprise linux X X X X X 5.4
Apache HTTP
server X X 2.0.63
MySQL
enterprise
edition X 5.0.51
Drupal X 6.1
Solr X 1.4.0
Java X X 1.6.6
JBOSS WEB X 1.4
Zend platform
server X 3.6.3
Table 3
Pre-deployment plan
Step Instruction Command Owner Duration
1
Deployment plan
Step Instruction Command Owner Duration
Clean Deploy working rm -rf <deploy working System 5 min
1
directory directory>/* Admin
Move Build zip file into unzip deploy- System
2 <deploy working myapplication<drop_date><vers Admin
directory> ion>.zip
Setup Oracle . ./setdbenv.oracle.sh System
3 Environment. Admin
./setdbenv.oracle.sh
Login to database System
4 Admin
Run SQL script. @file System
5 Admin
Run Deploy Ant script cd <deploy working directory> System
6 Admin
./ant -f deploy.xml - System
Dtarget.env=qat1 - Admin
6.1
Dbuild.label=<build_label> -
Ddeploy.type=full
Post-deployment plan
Step Instruction Command Owner Duration
1
Contact list
Name Email Phone Title
Escalation
Name Email Phone Title
Application
AJAX (Asynchronous JavaScript and XML). A group of inter-related web development methods used on the
application
client-side to create interactive web applications; web applications can retrieve data from the server
asynchronously in the background without interfering with the display and behavior of the existing page.
Development
development DHTML (Dynamic HTML). A collection of technologies used together to create interactive and animated web
sites by using a combination of a static markup language (such as HTML), a client-side scripting language (
such as JavaScript), a presentation definition language (such as CSS), and the Document Object Model.
GUID (Globally Unique Identifier). A special type of identifier used in software applications to provide a unique
reference number. The primary purpose of the GUID is to have a totally unique number; ideally it will never
have to be generated twice by any computer or group of computers in existence.
IHS (IBM HTTP Server). Based on the Apache HTTP Server; can be remotely administered and configured
using the WebSphere administrative console; the HTTP server is also included in the IBM WebSphere
Application Server distribution packages.
JDK 1.4.2 (Java 2 SDK, Version 1.4.2). An upgrade release of the Java platform; provides support for several
cryptographic algorithms commonly used in cipher suites such as RSA, RC4, DES, Triple DES, Diffie-Hellman,
and DSA; provides server session management APIs to manage memory-resident SSL sessions; provides
support for cipher suite negotiation, which is part of the SSL handshaking used to initiate or verify secure
communications.
JSON-RPC (JSON Remote Procedure Call). A protocol similar to XML-RPC defining only a handful of data
types and commands; allows for bi-directional communication between the service and the client, treating
each more like peers and allowing peers to call one another or send notifications to one another.
ORM (Object-Relational Mapping). A programming technique for converting data between incompatible type
systems in object-oriented programming languages. ORM creates a "virtual object database" that can be used
from within the programming language.
PHP (Hypertext Preprocessor). A widely used, general-purpose scripting language that was originally
designed for web development to produce dynamic web pages; embedded into the HTML source document
and interpreted by a web server with a PHP processor module, which generates the web page document.
QR Codes (Quick Response Codes). Specific matrix code, readable by dedicated QR barcode reader and
camera phones; code consists of black modules arranged in a square pattern on a white background; the
information encoded can be text, URL, or other data.
SOA (Search-Oriented Architecture). Architecture in which the data tier may be replaced or placed behind
another tier which contains a search engine and search engine index which is queried in-place of the database
management system; the search engine crawls the relational database management system in addition to
other traditional data sources such as web pages or traditional file systems and consolidates the results when
queried.
SOAP (Simple Object Access Protocol). A protocol specification for exchanging structured information in the
implementation of Web Services in computer networks; relies on Extensible Markup Language (XML) for its
messaging format, and usually relies on other Application Layer protocols for message negotiation and
transmission; can form the foundation layer of a web services protocol stack, providing a basic messaging
framework upon which web services can be built.
Solr. An open source enterprise search platform from the Apache Lucene project; its major features include
powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, and rich
document handling; provides distributed search and index replication.
Spring MVC (Spring Model-view-controller). A request-based framework; defines strategy interfaces for all of
the responsibilities which must be handled by a modem request-based framework; the goal of each interface is
to be simple and clear so that it's easy for Spring MVC users to write their own implementations if they so
choose.
UAT (Universal Audio Transmitter). A wireless bridge which allows wireless control over common media
players such as iTunes, Pandora Radio, and Windows Media Player.
VLAN (Virtual Local Area Network). A group of hosts with a common set of requirements that communicate as
if they were attached to the same broadcast domain, regardless of their physical location; allows for end
stations to be grouped together even if they are not located on the same network switch.
XML (Extensible Markup Language). A set of rules for encoding documents in machine-readable form; the
design goals emphasize simplicity, generality, and usability over the Internet.
Compliance
AML (Anti-Money Laundering). Describes the legal controls that require financial institutions and other
regulated entities to prevent or report money laundering activities.
compliance GLB (Gramm-Leach-Bliley Act). Allows commercial banks, investment banks, securities firms, and insurance
companies to consolidate.
PCI (Payment Card Industry standard). A set of data security requirements designed to ensure that all
companies that process, store, or transmit credit card information maintain a secure environment.
SARBOX or SOX (Sarbanes Oxley Act). Legislation intended to drive public corporations and organizations
toward a higher bar of financial responsibility and reporting; states that companies must guarantee the
accuracy of all financial reports; requires companies to put investors on notice when financial situations
change; requires companies to prepare reports evaluating their company's internal executives effectiveness at
meeting these guidelines.
SAS 70 (Statement on Auditing Standards No. 70: Service Organizations). Provides guidance to service
auditors when assessing the internal controls of a service organization and issuing a service auditor's report;
provides guidance to auditors of financial statements of an entity that uses one or more service organizations.
Encryption
AES (Advanced Encryption Standard). A symmetric-key encryption standard adopted by the U.S. government;
comprises three block ciphers adopted from a larger collection; the cipher is specified as a number of
repetition of transformation rounds that convert the input plaintext into the final output of cipher text.
encryption COPPA (Children's Online Privacy Protection Act). Legislation regarding the online collection of personal
information by persons or entities under U.S. jurisdiction from children under 13 years of age; it details what a
website operator must include in a privacy policy, when and how to seek verifiable consent from a parent or
guardian, and what responsibilities an operator has to protect children's privacy and safety online.
PGP (Pretty Good Privacy). A data encryption and decryption computer program that provides cryptographic
privacy and authentication for data communication; often used for signing, encrypting and decrypting emails to
increase the security of email communications.
RDA (Remote Database Access). A protocol for database access; describes the connection of a database
client to a database server; includes features for communicating database operations and parameters from the
client to the server, in return, transporting result data from the server to the client; database transaction
management.
RSA (Rivest, Shamir, and Adleman). An algorithm for public-key cryptography; widely used in electronic
commerce protocols and is believed to be secure given sufficiently long keys and the use of up-to-date
implementations; messages encrypted with the public key can only be decrypted using the private key.
SFTP (SSH File Transfer Protocol). Specific matrix code, readable by dedicated QR barcode reader and
camera phones; code consists of black modules arranged in a square pattern on a white background; the
information encoded can be text, URL, or other data.
SPI (Security Parameter Index). An identification tag added to the header while using IPsec for tunneling the
IP traffic; help the kernel discern between two traffic streams where different encryption rules and algorithms
may be in use.
SSH (Secure Shell). A network protocol that allows data to be exchanged using a secure channel between two
networked devices' used basically on Linux and Unix based systems to access shell accounts.
SSL (Secure Sockets Layer). A cryptographic protocols that provide communications security over the
internet; encrypt the segments of network connections above the Transport Layer, using symmetric
cryptography for privacy and a keyed message authentication code for message reliability.
Facebook
Apps on Facebook.com. Building an app on Facebook.com gives you the opportunity to deeply integrate into
our core user experience. Use the native functionality of Facebook such as Request and Bookmarks to create
an ideal social space for your users.
Facebook Mobile apps on Facebook. The Facebook platform makes iOS (iPhone & iPad), Android, and Mobile Web
applications social. Use single-sign-on to access the user's social graph (without yet another
username/password) and create a personalized experience.
Websites. Using Facebook on your website allows you to create more a personalized, social experience using
social plugins such as the Like Button and simplify your registration and sign-in process using Login button
and Registration plugin.
Core concepts
Authentication. Facebook authentication enables your app to interact with the Graph API on behalf of
Facebook users and provides a powerful single-sign on mechanism across Web, mobile, and desktop apps.
Graph API. The Graph API is the core of Facebook platform, enabling you to read and write data to Facebook.
It provides a simple and consistent view of the social graph, uniformly representing objects (like people,
photos, events, and pages) and the connections between them (friendships, likes, and photo tags).
Open graph protocol. The Open Graph protocol enables you to integrate your pages into the social graph.
These pages gain the functionality of other graph objects including profile links and stream updates for
connected users.
Social channels. Facebook platform lets you integrate with social channels such as News Feed and
Requests to help you drive growth and engagement with your app, site or content.
Social plug-ins. Social plugins enable you to provide engaging social experiences to your users with just a
line of HTML. Because the plugins are served by Facebook, the content is personalized to the viewer whether
or not they have signed into your site.
Legacy APIs
Legacy FBML. FBML enables you to build Facebook applications that deeply integrate into a user's Facebook
experience. To use JavaScript within FBML, use FBJS.
Legacy JavaScript API. The old Javascript API provides a rich client-side functionality for authentication and
rendering Dialogs.
Legacy REST API. The REST API enables you to interact with Facebook web site programmatically via HTTP
requests.
iOS SDK. The iOS SDK provides first-class Facebook platform support for iPhone, iPad and iPod Touch apps
written in Objective-C. You can utilize single-sign-on, call the Graph API and display platform dialogs.
JavaScript SDK. The JavaScript SDK enables you to access all of the features of the Graph API and dialogs
via JavaScript. It provides a rich set of client-side functionality for authentication and rendering the XFBML
versions of our social plugins.
PHP SDK. This SDK provides Facebook platform support to your PHP-based web apps. This library helps you
add Facebook login and Graph API support to your website.
Python SDK. This open source library provides limited support for the Facebook platform inclusive of making
Graph API calls and supporting authentication cookies set by the JavaScript SDK.
Tools
Ads API. The Facebook Ads API lets you create and manage your own ads on Facebook programmatically,
without using the Facebook Advertising Manager tool. http://www.facebook.com/ads/manage/
Change Log. We make sure to inform Facebook platform developers about any notable changes through our
developer blog, but we know that even minor changes can sometimes impact developers, so we provide a
change log at this url: http://developers.facebook.com/blog.
Chat API. You can integrate Facebook chat into your Web-based, desktop, or mobile instant messaging
products. Your instant messaging client connects to Facebook chat via the Jabber/XMPP service.
Credits API. The Facebook Credits API enables a user to use credits as a method for purchasing digital and
virtual goods within your app.
Developer App. The Developer app allows you to create and manage Facebook apps.
Dialogs. Dialogs provide a simple, consistent interface to display dialogs to users. Dialogs do not require
special user permissions because they require user interaction. Dialogs can be used in any type of application,
whether on Facebook.com, a website, or a mobile application.
FQL (Facebook Query Language).Enables you to use an SQL-style interface to query the data exposed by the
Graph API. It provides for some advanced features not available in the Graph API, including batching multiple
queries into a single call.
Insights. Insights provide analytics on your Facebook page, app and website. The Insights dashboard makes
it easy to see how Facebook users are interacting with your content, and the Insights APIs allow developers to
obtain additional Insights and integrate the data with third party reporting systems.
http://www.facebook.com/insights.
Internationalization API. Facebook is currently available in over 70 languages, thanks to a framework that
allows our user community to translate the text on Facebook. By integrating with Facebook, you can take
advantage of our Translations framework immediately, so you can enjoy the benefits that translation can bring
to your platform application or website.
Live Status. Having unexpected problems with our APIs? Before filing a bug, check Live Status to see if we
know about it, and if it’s affecting everybody.
Test Users. A test user is a user account associated with an app created for the purpose of testing the
functionality of that application. The Facebook platform supports the creation of test users for manual and
automated tests.
URL linter. Tool that helps you debug your Open Graph protocol pages. Having problems with the Like button
or our other social plugins? Start with URL linter.
Testing
Audit and controls testing. Verify the adequacy and effectiveness of controls and the completeness of data
processing results.
testing Backup and recovery testing. Verify the capability of the application to be restarted after a failure.
Entry criteria. A checklist of activities that must be completed or work items that must exist before a given
task within an activity or sub-activity may begin.
Error-handling testing. Verify the ability of the application to detect and respond to exception conditions. For
example, test to ensure that correct error messages are returned for invalid entries.
Exit criteria. Actions that must happen before an activity is considered complete.
Function testing. Verify that each business function operates according to the detailed requirements and the
external and internal design specifications.
Integrated test. Interconnectivity test, end-to-end test and user acceptance test.
Integration testing. Verify proper execution of all the application components, including interfaces to other
applications. Tests are performed to verify that the system is both functionally and operationally sound.
Interface system testing. A test type used to ensure that all interfaces and links between applications or
systems are functioning correctly.
Operational testing. Verify that all components are operational and function properly.
Performance testing. Verify that the system meets the level of performance expected, including response
times, turnaround times (throughput), and availability.
Regression testing. Verify that no unwanted changes are introduced anywhere in the system as a result of
one part of the system changing. It verifies that the system functions as a whole.
Stress/volume testing. Test data is used to test the boundaries, perimeters, or extremes of the input domain.
Stress testing often includes maximum, minimum, and between values. High volumes of traffic are generated
to test how the system responds.
System testing. A dynamic level of testing in which all the components that comprise a system are tested to
verify that they function together as a whole.
Test case. A set of test inputs, execution conditions, and expected results developed for a particular objective,
such as to exercise a particular program path or to verify compliance with a specific requirement.
Test data. The input data and file conditions associated with a specific test case.
Test environment. The external conditions or factors that can directly or indirectly influence the execution and
results of a test.
Unit testing. The first verification of new or changed code in a component to determine whether the logic,
syntax and, modified paths function correctly.
User acceptance testing. A level of testing conducted by the user of the system. The user performs their
daily, weekly, monthly, quarterly, and/or annual functions on the test environment. The objective is to ensure
that the modifications have not affected the user community.